Ознакомьтесь с обновленным курсом DevOps.

Ссылка для регистрации на курс:



Ссылка на курс:



Ссылка на YouTube:



Пояснения — это краткий синтаксис для описания списков, наборов или словарей в декларативном или функциональном стиле.

Синтаксис выглядит следующим образом

[expr(item) for item in iterable]

Каждый элемент в итерируемом объекте справа мы оцениваем как выражение слева

А теперь давайте посмотрим на этот пример

>>> y = “welcome to the world of python”.split()
>>> [len(x) for x in y]
[7, 2, 3, 5, 2, 6]

Без понимания списка, если мне нужно написать тот же код

>>> length = []
>>> for a in y:
… length.append(len(a))

>>> length
[7, 2, 3, 5, 2, 6]

Установить понимание

Как мы знаем, множество – это неупорядоченный набор элементов, в котором каждый элемент может встречаться только один раз. Хотя набор существует в Python с версии 2.4, в Python 3 появился синтаксис литерала набора. Подробнее о наборах



>>> x = {x**2 for x in range(5)}
>>> x
{0, 1, 4, 9, 16}

Тот же пример без понимания

>>> square = []
>>> for i in range(5):
… square.append(i**2)

>>> square
[0, 1, 4, 9, 16]

Еще несколько примеров для печати четных чисел

[x for x in range(10) if x % 2 == 0]
[0, 2, 4, 6, 8]

ИЛИ печатная матрица

>>> from pprint import pprint
>>> pprint([[1 for x in range(10)]for y in range(10)])
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]

Понимание словаря

Распознавание словарей позволяет нам выражать создание словарей во время выполнения

Синтаксис

{key: value for(key,value) in iterable}

Понимание словаря очень полезно, если мы хотим инвертировать словарь

>>> import pprint
>>> D1 = {‘a’:1, ‘b’:2, ‘c’:3}
>>> D2 = {v: k for k,v in D1.items()}
>>> pprint(D2)
{1: ‘a’, 2: ‘b’, 3: ‘c’}