САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ
×

Python Учебник

Python Главная Python Введение Python Начало работ Python Синтаксис Python Комментарии Python Переменные Python Тип данных Python Числа Python Подбор Python Строки Python Булевы Python Операторы Python Списки Python Кортежи Python Наборы Python Словари Python If...Else Python Циклы While Python Циклы For Python Функции Python Лямбда Python Массивы Python Классы/Объекты Python Наследование

Python Понимание списка



Понимание списка

Понимание списков предлагает более короткий синтаксис, когда вы хотите создать новый список на основе значений существующего списка.

Пример:

На основе списка фруктов вам нужен новый список, содержащий только фрукты с буквой «а» в названии.

Без понимания списка вам придется написать оператор for с условным тестом внутри:

Пример

fruits = ["яблоко", "банан", "вишня", "киви", "манго"]
newlist = []

for x in fruits:
  if "a" in x:
    newlist.append(x)

print(newlist)
Попробуйте сами »

С пониманием списка вы можете сделать все это с помощью всего одной строки кода:

Пример

fruits = ["яблоко", "банан", "вишня", "киви", "манго"]

newlist = [x for x in fruits if "a" in x]

print(newlist)
Попробуйте сами »


Синтаксис

newlist = [выражение для элемента в итерации если условие == True]

Возвращаемое значение — новый список, оставив старый список без изменений.


Условие

Условие похоже на фильтр, который принимает только те элементы, значение которых равно True.

Пример

Принимайте только те предметы, которые не "яблоко":

newlist = [x for x in fruits if x != "яблоко"]
Попробуйте сами »

Условие if x != "яблоко" вернёт True для всех элементов, кроме "яблоко", в результате чего новый список будет содержать все фрукты, кроме "яблоко".

Условие является необязательным и может быть опущено:

Пример

Без оператора if

newlist = [x for x in fruits]
Попробуйте сами »

Итерируемый

Итерируемый объект может быть любым итерируемым объектом, например, списком, кортежем, набором и т. д.

Пример

Вы можете использовать функцию range() для создания итерации:

newlist = [x for x in range(10)]
Попробуйте сами »

Тот же пример, но с условием:

Пример

Принимать только числа меньше 5:

newlist = [x for x in range(10) if x < 5]
Попробуйте сами »

Выражение

Выражение является текущим элементом в итерации, но также и результатом, которым вы можете манипулировать до того, как он станет элементом списка в новом списке:

Пример

Установите значения в новом списке в верхний регистр:

newlist = [x.upper() for x in fruits]
Попробуйте сами »

Вы можете установить результат на любой вкус:

Пример

Установите для всех значений в новом списке значение «привет»:

newlist = ['привет' for x in fruits]
Попробуйте сами »

Выражение также может содержать условия, но не как фильтр, а как способ управления результатом:

Пример

Вернуть «апельсин» вместо «банан»:

newlist = [x if x != "банан" else "апельсин" for x in fruits]
Попробуйте сами »

Выражение в приведенном выше примере говорит:

"Верните товар, если это не банан, если это банан, верните апельсин».