Рубрики
Без рубрики

Использование списка понимание в Python

Привет всем! Сегодня мы поговорим о том, как мы можем использовать список пометков в Python.

Автор оригинала: Pankaj Kumar.

Использование списка понимание в Python

Привет всем! Сегодня мы поговорим о том, как мы можем использовать список пометков в Python.

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

Зачастую, когда мы имеем дело с кодом, связанным с созданием списков, обременительно писать вложенные петли снова и снова.

Python сделал это проще для нас, введя эту функцию.

Давайте теперь посмотрим, как мы можем использовать это в наших программах, взяв подходящие примеры!

Основная структура понимания списка

Давайте рассмотрим следующий код, написанный нормально:

word = "Hello from AskPython"
letters = []

for letter in word:
    letters.append(letter)

print(letters)

Выход

['H', 'e', 'l', 'l', 'o', ' ', 'f', 'r', 'o', 'm', ' ', 'A', 's', 'k', 'P', 'y', 't', 'h', 'o', 'n']

Вышеуказанный фрагмент печатает список букв в нашем Слове.

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

Давайте теперь используем понимание списка, чтобы сделать это более короче и читаемым:

word = "Hello from AskPython"

letters = [letter for letter in word]

print(letters)

Выход

['H', 'e', 'l', 'l', 'o', ' ', 'f', 'r', 'o', 'm', ' ', 'A', 's', 'k', 'P', 'y', 't', 'h', 'o', 'n']

Посмотрите, как это легко? Намерение кода сделано понятно: мы подбираем буквы слова и добавьте его в наш список напрямую!

Теперь мы можем использовать понимание списка с другими Iterables!

Давайте возьмем еще один пример, где мы можем генерировать квадраты чисел от 1 до 10.

Обычный подход будет следующим:

squares = []

for i in range(1, 11):
    squares.append(i * i)

print(squares)

Выход

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Хотя это достаточно мало, мы можем сделать лучше, используя понимание списка. Мы можем сократить это только к двум линиям кода!

squares = [i * i for i in range(1, 11)]
print(squares)

Мы теперь показали вам силу понимания списка! Давайте теперь добавим еще более специю, имея дело с условными, такими как Если и еще !

Использование условий в понимании списка

Мы можем использовать Если и еще Условные условные В нашем списке понимание.

Давайте рассмотрим первый случай, где у нас есть только Если условие.

Общая структура этого типа списка понимается следующим образом:

list = [item for item in iterable if condition]

Так вот, Список будет состоит только из Предмет где Состояние Справедливо.

Давайте возьмем наш предыдущий пример построения квадратов и ограничить его только даже номерам, используя Если Отказ

squares = [i * i for i in range(1, 11) if i % 2 == 0]
print(squares)

Выход

[4, 16, 36, 64, 100]

Действительно, мы можем получить только тесные элементы квадраты здесь, так как I% 2 Только если я даже.

Давайте теперь возьмем второй случай, где у нас есть еще Состояние также. Структура теперь будет выглядеть так:

list = [value1 if condition else value2 for item in iterable]

Здесь список будет содержать элементы Value1 Если Состояние и элементы Значение2 Если Состояние Отказ

Давайте теперь возьмем пример, где мы продолжаем печатать целые квадраты до Я <= 5 Отказ Если я> 5, мы будем печатать 0 вместо этого.

Нашему списку понимание теперь будет выглядеть так:

my_list = [i * i if i <= 5 else 0 for i in range(10)]
print(my_list)

Выход

[0, 1, 4, 9, 16, 25, 0, 0, 0, 0]

Как видите, список содержит только квадраты всех номеров. Остальные элементы установлены на 0!

Мы также можем использовать другие условные условия, а даже функции лямбда, если мы хотим!

Вот немного надуманный пример, который использует лямбда Вычислить последовательные пары-суммы от 0. (0, 1 + 2, 2 + 3, 3 + 4 ..)

pair_sums = [(lambda x, y: x + y)(i, j) if i > 1 else 0 for i, j in zip(range(1, 11), range(0, 10))]
print(pair_sums)

Выход

[0, 3, 5, 7, 9, 11, 13, 15, 17, 19]

Как видите, этот код не самый читаемый, и вам, возможно, было лучше с чем-то другим!

Итак, будьте осторожны, чтобы не использовать состав списка, если вы пытаетесь сделать слишком много одновременно. Лучше придерживаться этого метода, когда вы хотите запустить простую контурное операторное утверждение для создания списков, а не при выполнении математических расчетов на каждом элементе индивидуально.

Заключение

В этой статье мы узнали об использовании семантики понимания списка Python. Это облегчает уменьшение письма повторяющегося кода снова и снова, используя итеративные петли!

Рекомендации

  • Статья Аскеппина на списке Python