Введение в список понимания 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. Здесь мы обсуждаем списки и лямбда-функции, а также реализацию и вывод кода. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -
- Деструктор в Python с преимуществами
- Делайте пока цикл в Python с блок-схемой
- Строковый массив в Python с методами
- Что такое лямбда-слои AWS?
- Типы данных PL / SQL
- String Array в JavaScript
- Различные типы данных SQL с примерами
- Полное руководство по массиву строк