Python — Понимание списка — GeeksforGeeks
Понимание списка Python состоит из квадратных скобок, содержащих выражение, которое выполняется для каждого элемента вместе с циклом for для перебора каждого элемента в списке Python.
Понимание списков Python предоставляет гораздо более короткий синтаксис для создания нового списка на основе значений существующего списка.
Преимущества понимания списков
- Более эффективное использование времени и места по сравнению с циклами.
- Требуется меньше строк кода.
- Преобразует повторяющийся оператор в формулу.
Newlist = [ Выражение (элемент) для Элемент в Oldlist IF Condition ]
. Пример. Пример Affice Office Office Of of Displecton
].
Пример. Пример. Пример. Пример of office of affice of at off 1: Итерация с пониманием спискаPython3
|
Выход:
[1, 2, 3]
Пример 2: даже список с использованием списка
Python3 9.0039
|
ВЫХОД: 9003
[0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4009, 4, 4009, 4, 4009, 4, 4009, 4, 4009, 4, 4009, 4, 4009,: 3
.
![]()
Example 3: Matrix using List comprehension
Python3
|
Вывод:
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
Вычисления списка и цикл For
Существуют различные способы повторения через список.
Однако наиболее распространенным подходом является использование цикла для . Давайте рассмотрим приведенный ниже пример:
Python3
|
|
Вывод:
['G', ', 'e', 'e', 'k' ' ', 'G', 'e', 'e', 'k', 's', '!']
Временной анализ в списковом включении и цикле
списочное включение более эффективно как с точки зрения вычислений, так и с точки зрения пространство и время кодирования, чем цикл for.
Как правило, они записываются в одну строку кода. В приведенной ниже программе показана разница между циклами for и пониманием списка в зависимости от производительности.
Python3
return [i * * 2 for I в Диапазон (n)] = 9004
9003 |
Выходные
Время, затраченное на list_comprehension: 0,47 Из приведенной выше программы видно, что обработка списков выполняется намного быстрее, чем в цикле for. Вложенные списочные включения — это не что иное, как списочное включение в другое списочное включение, которое очень похоже на вложенные циклы for. Ниже приведена программа, реализующая вложенный цикл: 9004 Выход Теперь, используя вложенные списки, тот же результат можно сгенерировать с помощью меньшего количества строк кода. Выход 3
Вложенные списковые включения
Python3
матрица = [] 80049 i
in range ( 3 ): matrix.append([]) for j в Диапазон ( 5 ): Матрица [I].
Append (J) Print (MATRIX) (MATRIX) (MATRIX) [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
Python3
matrix = [[j for j in range ( 5 )] for i В Диапазон ( 3 )] Печать (MATRIX)
3
3
3
.
, [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
List Comprehension и Lambda
Lambda Expression — это не что иное, как сокращенное представление функций Python. Использование генераторов списков с лямбдой создает эффективную комбинацию. Давайте посмотрим на следующие примеры:
Python3
|
Выход
[10, 20, 30, 40, 50]
Здесь мы использовали для печать для печати 10.
Python3
|
Выход:
[10, 20, 30, 40, 50]
Теперь здесь мы использовали только понимание списка для отображения таблицы 10.
Python3
|
Output:
[10, 20, 30, 40, 50]
Наконец, мы используем лямбда + понимание списка для отображения таблицы из 10. Эта комбинация очень полезна для получения эффективных решений в меньшем количестве строк кода для сложных проблем.
Условные выражения в распознавании списков
Мы также можем добавлять условные операторы в распознавание списков.
Мы можем создать список, используя range(), операторы и т. д., а также применить некоторые условия к списку, используя оператор if.
- Понимание списка является эффективным средством описания и построения списков на основе текущих списков.
- Как правило, понимание списков легче и проще, чем стандартные функции формирования списков и циклы.
- Мы не должны писать длинные коды для обработки списков, чтобы обеспечить удобный код.
- Любое понимание списка может быть переписано в цикле for, но в контексте интерпретации списка каждый цикл for не может быть переписан.
Ниже приведены несколько примеров, демонстрирующих использование спискового понимания, а не традиционного подхода к итерации через итерации:
Пример 1: Python списковое понимание с использованием If-else
[ "равномерное число" , если I % 2 = = 0 else "Odd number" for i in range ( 8 )]
print (lis)
Output:
['Четное число', 'Нечетное число', 'Четное число', 'Нечетное число', 'Четное число', 'Нечетное число', 'Четное число', 'Нечетное число']
Пример 2: Вложенный IF с пониманием списка
Python3
|
Вывод:
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]Отображение от 1 квадрата до 9002 чисел.
Python3
|
Выход
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100], пример 4: 36, 49, 64, 81, 100] . Отображение транспонирования 2D-матрицы.
Python3
|
Output:
[[10, 40, 70 ], [20, 50, 80], [30, 60, 90]]Пример 5: Переключить регистр каждого символа в строке.

Python3
9 |
Выход 3
96Пример 6: Перевернуть каждую строку в кортеже.. , 'K', 'S', '\x14', 'g', 'E', 'E', 'K', 'S']
Python3
|
Выход:
['skeeg', 'rof', 'skeeg']Пример 7: Отображение суммы цифр всех элементов нечетных в атмосфере в атмосфере в атмосфере в атмосфере в атмосфере в атмосфере в атмосфере в атмосфере.
список.Python3
DSUM |
Выход:
[16, 3, 18, 18]
Бюро BUREAU CENSUS BUREAU: Соединенные Штаты
111 США.
-- Выберите факт --Оценки населения, 1 июля 2021 г., (V2021) База оценок численности населения, 1 апреля 2020 г., (V2021) Население, изменение в процентах - с 1 апреля 2020 г. (база оценок) по 1 июля 2021 г., ( V2021)Население, перепись, 1 апреля 2020 г.Население, перепись, 1 апреля 2010 г.Лица в возрасте до 5 лет, процентЛица в возрасте до 18 лет, процентЛица в возрасте 65 лет и старше, процентЖенщины, процентТолько белые, процентТолько чернокожие или афроамериканцы, процент (a)Американские индейцы и только коренные жители Аляски, процент (a) только азиаты, процент (a) только коренные жители Гавайев и других тихоокеанских островов, процент (a) две или более рас, процентиспаноязычные или латиноамериканцы, процент (b) только белые, не латиноамериканцы или латиноамериканцы, процентыветераны , 2017-2021Лица иностранного происхождения, процент, 2017-2021Жилищные единицы, 1 июля 2021 г., (V2021)Количество единиц жилья, занимаемого собственниками, 2017-2021Средняя стоимость единиц жилья, занимаемых собственниками, 2017-2021Средние выбранные ежемесячные расходы собственника - с ипотека, 2017-2021Средние выбранные ежемесячные расходы владельца - без ипотеки, 2 017–2021Средняя валовая арендная плата, 2017–2021 гг.
(1000 долл. США) (c)Общий объем розничных продаж, 2017 г. (1000 долл. США) (c)Общий объем розничных продаж на душу населения, 2017 г. (c)Среднее время в пути до работы (минуты), возраст работников 16 лет и старше, 2017–2021 гг. Средний доход домохозяйства (в 2021 г. долл. США), 2017–2021 гг. Доход на душу населения за последние 12 месяцев (в долларах 2021 г.), 2017–2021 гг. Лица, живущие в бедности, в процентахОбщее количество предприятий-работодателей, 2020 г.Общая занятость, 2020 г.Общая годовая заработная плата, 2020 г. (1000 долл. США)Общая занятость, изменение в процентах, 2019 г.-2020 Всего предприятий, не являющихся работодателями, 2019 г. Все фирмы-работодатели, отчетный год 2017 г. Фирмы работодателей, принадлежащие мужчинам, отчетный год 2017 г. Фирмы работодателей, принадлежащие женщинам, отчетный год 2017 г. Фирмы работодателей, принадлежащие представителям меньшинств, отчетный год 2017 г. Фирмы работодателей, не принадлежащие представителям меньшинств, отчетный год 2017 г.
, 'e', 'e', 'k', 's', ' ', '4', ' ', 'G', 'e', 'e', 'k', 's', '!' ]
time()
, [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
0003