Ознакомьтесь с обновленным курсом 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’}