Понимание списка позволяет сгенерировать список всего одной строкой кода или в сжатой форме.
Пример:
используя цикл for для создания списка, этот список включает первые десять чисел, умноженные на 3.
multiple=[] for x in range(1, 11): multiply=x*3 multiple.append(multiply) print(multiple)
вывод:
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
С пониманием списка вы можете сделать все это с помощью всего одной строки кода:
multiple = [x*3 for x in range(1, 11)] print(multiple)
вывод:
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Это то, что понимание списка делает все шаги всего одной строкой кода.
Синтаксис понимания списка
list_comprehension= [выражение для item в iterable, если условие == True]
- Выражением может быть любое выражение — отдельный элемент, функция, примененная к элементу, и т. д.
- Элемент — это элемент в итерируемом,
- Итерируемый объект — это объект, который вы можете перебирать по списку.
- если condition==True, для любого условия мы применяем его к списку.
В приведенном выше примере выражение равно x*3, x — элемент, а диапазон (1–11) — итерируемый список.
создание нового списка из значений в списке, который у вас уже есть
* Понимание списка с условием If
В понимании списка мы также можем добавить условие if
, которое может помочь нам фильтровать данные. Если у нас есть список из первых десяти чисел, нам нужны только четные числа.
old=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] new = [x for x in old if x % 2 == 0] print(new)
вывод:
[2, 4, 6, 8, 10]
* Понимание списка, если оператор Else
Здесь мы создали простое понимание списка, которое будет хранить все значения old в списке new, если значения которого четные, иначе значения нечетные, тогда он сохранит строку “even”
на своем месте и “odd”
на своем месте.
old=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] new = ['even' if x % 2 == 0 else 'odd' for x in old] print(new)
вывод:
['odd', 'even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd', 'even']
Чтобы узнать больше о связанных темах, ознакомьтесь со статьями ниже:
Если вам понравился этот пост, пожалуйста, купите мне ко-фай.