tgoop.com/prog_way_blog/64
Create:
Last Update:
Last Update:
Что такое list comprehension в Python.
Очень удобная сущность, которая позволяет определять списки. Самое приятное тут то, что с помощью list comprehension мы определим список быстрее, чем любым другим способом, если я не ошибаюсь.
Итак, вот как выглядит полная структура: [foo(x) if condition else bar(x) for x in sequence]
Это общая формула. Блоки else
и if
не обязательны, то есть наше представление списков может быть упрощёно вплоть до:[x for x in sequence]
Не знаю как объяснить это кратко и понятно, получается либо так, либо так. Так что давайте напишем несколько представлений с пояснениями. Все примеры с красивой подсветкой синтаксиса можно посмотреть тут.
/// квадраты натуральных чисел от 1 до 10Надеюсь эти примеры оказались наглядными и помогут вам в понимании темы. Напоминаю, что все примеры с красивой подсветкой синтаксиса можно ещё раз посмотреть тут.
[x ** 2 for x in range(1, 11)]
/// только чётные натуральные числа от 1 до 20
[x for x in range(1, 21) if x % 2 == 0]
Обратите внимание на то, что if тут в конце. Такая запись характерна для list comprehension без блока else
/// получить список символов из строки
[letter for letter in word]
Насчёт многочисленных условий:
/// список чисел от 1 до 200, одновременно делящихся на 2, 7 и 11
[x for x in range(1, 201) if x % 2 == 0 and x % 7 == 0 and x % 11 == 0]
Кстати, такое число всего одно: 154 = 2 * 7 * 11
/// список кортежей типа (type, num) от 1 до 5
[("Нечётное", x) if x % 2 != 0 else ("Чётное", x) for x in range(1,6)]
Ну и конечно же спасибо за прочтение, это важно для меня ❤️
#python
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/64