Практические применения и примеры
Теперь, когда мы рассмотрели основы работы с пустыми списками с использованием генераторов списков (list comprehension), давайте исследуем некоторые практические применения и примеры.
Фильтрация и преобразование данных
Одним из распространенных случаев использования генераторов списков является фильтрация и преобразование данных. Предположим, у нас есть список имен студентов, и мы хотим создать новый список, содержащий только имена, начинающиеся с буквы 'A'. Мы можем использовать генератор списка для этого:
student_names = ['Alice', 'Bob', 'Charlie', 'David', 'Ava']
names_starting_with_a = [name for name in student_names if name.startswith('A')]
print(names_starting_with_a) ## Output: ['Alice', 'Ava']
В этом примере генератор списка [name for name in student_names if name.startswith('A')]
создает новый список, содержащий только имена, начинающиеся с буквы 'A'.
Обработка отсутствующих данных
Другой распространенный сценарий - это работа с отсутствующими данными в списке. Предположим, у нас есть список оценок студентов, и некоторые из оценок отсутствуют (представлены значением None
). Мы можем использовать генератор списка для замены отсутствующих оценок значением по умолчанию, например, 0:
student_grades = [90, 85, None, 92, None, 80]
filled_grades = [grade if grade is not None else 0 for grade in student_grades]
print(filled_grades) ## Output: [90, 85, 0, 92, 0, 80]
В этом случае генератор списка [grade if grade is not None else 0 for grade in student_grades]
заменяет значения None
на 0, создавая новый список с заполненными оценками.
Генерация последовательностей
Генераторы списков также могут быть использованы для генерации последовательностей значений. Например, предположим, мы хотим создать список первых 10 квадратов чисел:
square_numbers = [num ** 2 for num in range(1, 11)]
print(square_numbers) ## Output: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Генератор списка [num ** 2 for num in range(1, 11)]
генерирует список первых 10 квадратов чисел.
Это лишь несколько примеров практического применения генераторов списков, особенно при работе с пустыми списками. Понимая эти методы, вы можете писать более лаконичный, читаемый и эффективный код на Python.