526.00K
Категория: ПрограммированиеПрограммирование

Urok21_List_comprehension

1.

ЛЕКЦИЯ 21. List comprehension
Функциональность list comprehension предоставляет более краткий и лаконичный
синтаксис для создания списков на основе других наборов данных.
Она имеет следующий синтаксис:
newlist = [expression for item in iterable (if condition)]
Синтаксис list comprehension состоит из следующих компонентов:
iterable: перебираемый источник данных, в качестве которого может
выступать список, множество, последовательность, либо даже функция,
которая возвращает набор данных, например, range()
item: извлекаемый из источника данных элемент
expression: выражение, которое возвращает некоторое значение.
Это значение затем попадает в генерируемый список
condition: условие, которому должны соответствовать извлекаемые из источника
данных элементы. Если элемент НЕ удовлетворяет условию, то он НЕ выбирается.
Необязательный параметр.
Рассмотрим небольшой пример. Допустим, нам надо выбрать из списка все числа,
которые больше 0. В общем случае мы бы могли написать так:

2.

ЛЕКЦИЯ 21. List comprehension
Теперь изменим этот код, применив list comprehension:
Выражение [n for n in numbers if n > 0] говорит выбрать из списка
numbers каждый элемент в переменную n, если n больше 0 и возвратить n в
результирующий список.

3.

ЛЕКЦИЯ 21. List comprehension
Теперь изменим этот код, применив list comprehension:
Выражение [n for n in numbers if n > 0] говорит выбрать из списка
numbers каждый элемент в переменную n, если n больше 0 и возвратить n в
результирующий список.

4.

ЛЕКЦИЯ 21. List comprehension
источник данных iterable
В качестве источника данных iterable может использоваться любой перебираемы
объект, например, другой список, словарь и т.д. Например, функция range()
возвращает все числя нуля до указанного порога не включая:
Нередко данная конструкция применяется, чтобы создать из словаря список.
Например, выберем из словаря все ключи

5.

ЛЕКЦИЯ 21. List comprehension
Возвращение результата
Параметр expression представляет выражение, которое возвращает некоторое
значение. Это значение затем помещается в генерируемый список.
В примерах выше это был текущий элемент, который извлекается из источника данн
Так, в данном случае параметр expression представляет непосредственно извлека
из списка numbers элемент n. Но это могут быть и более сложные значения.
Например, возвратим удвоенное значение числа:
Здесь expression представляет выражение n * 2

6.

ЛЕКЦИЯ 21. List comprehension
Это могут быть и более сложные выражения:
Здесь параметр expression представляет выражение n * 2 if n > 0 else n
В данном случае мы говорим возвратить значение n * 2, если n > 0, иначе возврати
В expression можно производить различные трансформации с данными.
Например, возвратим также из словаря значение по ключу:

7.

ЛЕКЦИЯ 21. List comprehension
Условие
Условие - параметр condition определяет фильтр для выбора элементов из источ
данных. Применим условие для конкретизации выборки, например, выберем только
четные числа:
Выберем только те ключи из словаря, длина которых больше 3:

8.

ЛЕКЦИЯ 21. List comprehension
Список задач
1. Создайте список квадратов чисел от 1 до 10.
2. Получите список чётных чисел от 1 до 20.
3. Из списка words = ['apple', 'banana', 'cherry', 'date'] создайте новый список,
содержащий длины каждого слова.
4. Преобразуйте все строки в списке ['hello', 'world', 'python'] в верхний
регистр.
5. Извлеките все гласные из строки 'hello world' в виде списка.
6. Создайте список первых букв каждого слова из списка ['apple', 'banana',
'cherry'].
7. Переверните каждое слово в списке ['apple', 'banana', 'cherry'] (результат:
['elppa', 'ananab', 'yrrehc']).
8. Создайте список чисел от 1 до 50, которые делятся на 3 или на 5.
9. Создайте список кубов чисел от 1 до 15.
10.Отфильтруйте список [1, -2, 3, -4, 5, -6] — оставьте только положительные
числа.
11. Создайте декартово произведение двух списков: list1 = [1, 2, 3] и list2 = ['a',
'b'] (результат должен быть списком кортежей).
12. «Расплавьте» список списков [[1, 2], [3, 4, 5], [6]] в один плоский список.
13. Создайте список квадратов только чётных чисел от 1 до 10.
.

9.

ЛЕКЦИЯ 21. List comprehension
14. Из списка строк ['cat', 'dog', 'elephant', 'ant'] оставьте только те, длина
которых больше 3.
15. Преобразуйте список температур в градусах Цельсия [0, 10, 20, 30] в
градусы Фаренгейта по формуле F = C * 9/5 + 32.
16. Создайте список всех пар (i, j), где i идёт от 1 до 3, а j — от 1 до 4.
17. Из строки 'Python123' извлеките только буквы в виде списка.
18. Создайте таблицу умножения (список списков) для чисел от 1 до 5.
19. Из списка чисел [1, 2, 3, 4, 5] создайте список строк вида 'Number: 1',
'Number: 2' и т. д.
20. Создайте список остатков от деления чисел от 10 до 20 на 3.
21. Из списка слов ['Apple', 'Banana', 'Cherry'] создайте список, где каждое
слово будет в нижнем регистре, если его длина больше 5, иначе — в
верхнем.
22. Создайте список всех возможных комбинаций букв 'abc' и цифр '12'
(результат: ['a1', 'a2', 'b1', ...]).
23. Из двумерного списка [[1, 2, 3], [4, 5, 6], [7, 8, 9]] создайте плоский список
только нечётных чисел.
24. Создайте список кортежей (число, квадрат числа) для чисел от 1 до 10.
25. Из строки 'Hello World 123!' извлеките только цифры в виде списка строк.

10.

ЛЕКЦИЯ 21. List comprehension
26. Создайте список строк 'even' или 'odd' для чисел от 1 до 10 в зависимости
от их чётности.
27. Из списка [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}] извлеките
список имён.
28. Создайте список всех делителей числа 100 (исключая 1 и само число).
29. Из списка дат в формате 'YYYY-MM-DD' извлеките года в виде чисел
(например, из '2023-05-15' — 2023).
30. Создайте список уникальных элементов из списка [1, 2, 2, 3, 4, 4, 5],
сохранив порядок появления.

11.

ЛЕКЦИЯ 21. List comprehension
Спасибо за
внимание!
English     Русский Правила