Объяснение списков Python с примерами
Списковые включения предоставляют лаконичный способ создания списков в Python. Они более читабельны и часто более эффективны, чем использование традиционных циклов. В этой статье мы рассмотрим, что такое списочные включения, как они работают, а также приведем примеры для иллюстрации их использования.
Что такое понимание списка?
Списковый интерпретационный анализ — это компактный способ обработки всех или части элементов в коллекции и возврата списка с результатами. Синтаксис спискового интерпретационного анализа:
[expression for item in iterable if condition]
Здесь expression
— это текущий элемент в итерации, но это также результат, которым вы можете манипулировать, прежде чем он станет элементом списка. iterable
— это коллекция, по которой вы проходите цикл, а condition
— это необязательный фильтр, который включает только элементы, удовлетворяющие условию.
Базовые примеры
Создание списка квадратов
Чтобы создать список квадратов чисел от 0 до 9, можно использовать функцию включения списков следующим образом:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)
Выход:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Фильтрация элементов
Вы также можете добавить условие для фильтрации элементов. Например, чтобы получить только четные числа из списка:
even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)
Выход:
[0, 4, 16, 36, 64]
Сглаживание списка списков
Если у вас есть список списков и вы хотите сделать его более однородным, вы можете использовать генератор списков:
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)
Выход:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Расширенные примеры
Применение функций
Вы можете применять функции в списочном выражении. Например, чтобы преобразовать список строк в верхний регистр:
words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)
Выход:
['HELLO', 'WORLD', 'PYTHON']
Вложенные понимания
Списковые включения могут быть вложенными. Например, чтобы создать список кортежей (i, j), где i и j являются элементами из двух списков:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)
Выход:
[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]
Заключение
Списковые включения предлагают мощный и лаконичный способ генерации списков в Python. Они могут упростить ваш код и сделать его более читабельным, заменив несколько строк кода цикла одной строкой включений. Практикуйтесь в использовании списковых включений, чтобы лучше освоить их синтаксис и возможности.