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
для всех элементов, кроме "яблоко",
в результате чего новый список будет содержать все фрукты, кроме "яблоко".
Условие является необязательным и может быть опущено:
Итерируемый
Итерируемый объект может быть любым итерируемым объектом, например, списком, кортежем, набором и т. д.
Пример
Вы можете использовать функцию range()
для создания итерации:
newlist = [x for x in range(10)]
Попробуйте сами »
Тот же пример, но с условием:
Выражение
Выражение является текущим элементом в итерации, но также и результатом, которым вы можете манипулировать до того, как он станет элементом списка в новом списке:
Пример
Установите значения в новом списке в верхний регистр:
newlist = [x.upper()
for x in fruits]
Попробуйте сами »
Вы можете установить результат на любой вкус:
Пример
Установите для всех значений в новом списке значение «привет»:
newlist = ['привет' for x in fruits]
Попробуйте сами »
Выражение также может содержать условия, но не как фильтр, а как способ управления результатом:
Пример
Вернуть «апельсин» вместо «банан»:
newlist = [x if x != "банан" else "апельсин"
for x in fruits]
Попробуйте сами »
Выражение в приведенном выше примере говорит:
"Верните товар, если это не банан, если это банан, верните апельсин».