Введение в список понимания Python

Понимания обеспечивают короткий и простой способ построения новых последовательностей с использованием уже определенных последовательностей в Python. Эти последовательности могут быть списками, наборами, словарями и т. Д. Понимание списков является одной из ценных функций Python. В двух словах, списки пониманий предлагает способ создания новых списков на основе существующих списков. Другими словами, списки являются одним из простых способов создать список, основанный на некотором повторяемости. Здесь итерируемое - это все, что можно использовать для цикла. Понимание списков позволяет использовать альтернативный синтаксис для создания списков и любых других последовательных типов данных в Python. Мы рассмотрим, как они полезны позже. Существует три компонента понимания списка:

  • Выходное выражение: это необязательно и может быть проигнорировано.
  • Iterable.
  • Переменная, которая представляет членов итерируемой, ее часто называют итерационной переменной.

Синтаксис и примеры:

В python мы можем создавать списочные выражения, используя следующий синтаксис:

list_variable = (x for x in iterable)

Как вы можете видеть в списках, список назначен переменной. Давайте рассмотрим пример, во-первых, мы можем рассмотреть метод нахождения квадрата числа с помощью цикла:

Код:

numbers = (2, 5, 3, 7) square = () for n in numbers:
square.append(n**2)
print(square)

Выход:

Теперь давайте рассмотрим то же самое, но с использованием списочных представлений вместо цикла:

Код:

numbers = (2, 5, 3, 7) square = (n**2 for n in numbers) print(square)

Выход:

Здесь вы можете видеть, что квадратные скобки «()» используются для обозначения того, что результатом выражения внутри них является список.

Перечисления и лямбда-функции

Вы должны иметь в виду, что понимание списков - не единственный способ создания списков, в Python есть много встроенных функций и лямбда-функций, которые можно использовать, например:

Код:

letters = list(map(lambda x: x, 'human'))
print(letters)

Выход:

Хотя во многих случаях это работает, списочные выражения лучше читаются и их легче понять тем, кто не является программистом кода.

Добавление условных выражений в списки

Вы можете свободно использовать любые условные выражения, необходимые для понимания существующего списка. Давайте посмотрим на пример, который использует условные выражения:

Код:

numbers_list = ( x for x in range(20) if x % 2 == 0) print(numbers_list)

Выход:

Вот еще один пример:

Код:

numbers_list = (x for x in range(100) if x % 2 == 0 if x % 5 == 0) print(numbers_list)

Выход:

Использование вложенных циклов в списках

При необходимости мы можем использовать вложенные циклы в списках, давайте посмотрим, как мы можем использовать вложенные циклы таким образом, найдя транспонирование матрицы:

Код:

transposedmatrix = () matrix = ((1, 2, 3, 4), (4, 5, 6, 8)) for i in range(len(matrix (0))):
transposedmatrix_row = () for row in matrix:
transposedmatrix_row.append(row(i))
transposedmatrix.append(transposedmatrix_row)
print(transposedmatrix)

Выход:

Примеры списочных представлений Python

Ниже приведены примеры списочных представлений Python:

Пример № 1 - удаление гласных из данного предложения

Код:

def eg_for(sentence):
vowels = 'aeiou'
filter_list = () for l in sentence:
if l not in vowels:
filter_list.append(l)
return ''.join(filter_list)
def eg_lc(sentence):
vowels = 'aeiou'
return ''.join(( X for X in sentence if X not in vowels))
Now, let's define the matrix, run the program and then check-out the results:
sentence = "hello from the other side"
print ("loop result: " + eg_for(sentence))
print ("LC result: " + eg_lc(sentence))

Выход:

Пример № 2 - Отображение названий стран с их столицами

Код:

country = ( 'India', 'Italy', 'Japan' ) capital = ( 'Delhi', 'Rome', 'Tokyo' ) output_dict = ()
# Using loop for constructing dictionary
for (key, value) in zip(country, capital):
output_dict(key) = value
print("Output Dictionary using for loop:", output_dict)

Выход:

Преимущества списочных представлений Python

Кто-то может подумать, что если Loops можно использовать практически для всего, что делает список, то зачем использовать их в первую очередь? Ну, ответ в скорости и времени, необходимом для выполнения задачи, и количестве необходимой памяти. Когда создается понимание списка, мы уже сокращаем 3 строки кода до одной, и когда это делается, код работает намного быстрее, чем при рассмотрении списка, python сначала выделяет память для списка, а затем добавляет в него элементы. Кроме того, это, без сомнения, более элегантный и сложный способ создания списков, основанных на уже существующих списках.

Вывод

Теперь, когда у нас есть некоторый опыт работы со списками, легко понять, как они позволяют нам преобразовывать один список в новый список. Они имеют простой синтаксис, ограничивающий объем работы, необходимый для создания списка. Учитывая, что синтаксис и структура описаний списков в основном похожи на нотацию создателя множеств, они быстро становятся второй натурой для программистов и гарантируют, что как только код будет передан другому человеку для поддержки и расширения, его будет легко понять и работать с.

Рекомендуемая статья

Это руководство по списку пониманий Python. Здесь мы обсуждаем списки и лямбда-функции, а также реализацию и вывод кода. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Деструктор в Python с преимуществами
  2. Делайте пока цикл в Python с блок-схемой
  3. Строковый массив в Python с методами
  4. Что такое лямбда-слои AWS?
  5. Типы данных PL / SQL
  6. String Array в JavaScript
  7. Различные типы данных SQL с примерами
  8. Полное руководство по массиву строк