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

假如 們 們 想要 每 次 執該 時 指定 希望 可以 的 套 裝飾器 一 一 一 一 可以 原本 裝飾器 一 一 一 一 一 一 原本 再 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 再 一 一 一 一 一 一 一 的可以 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一層 код: понимание списка :

На следующем собрании Python Frederick я собираюсь поговорить о коде «Pythonic». Код Pythonic – код … Теги с Python.

Pythonic Code (6 серии деталей)

На следующий Python Frederick Встреча, я собираюсь поговорить о коде “Pythonic”. Код Pythonic – код, который хорошо подходит с дизайном языка Python. Некоторые люди могут называть это идиоматический Python. Эти конструктивные узоры дают Python некоторые из его элегантных чувств. Поскольку я собираюсь сделать целый разговор на Pythonic Code, я решил собрать серию постов, которые будут изучать некоторые из шаблонов на большей глубине.

Начать, давайте поговорим о Сообщение списка .

Сообщение списка

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

# A list example
some_numbers = [1, 2, 3, 4, 5]

Вы можете узнать много о списках, читая Учебник Python на структурах данных , Но этот пост будет охватывать один из более знаковых функций списка, список потенциалов.

Если вы работаете со списком данных, вы можете в конечном итоге хотеть изменять его. Давайте работать с некоторыми числами. Что бы вы сделали, если вы хотите удвоить ваши ценности?

Вот первая попытка:

numbers = [1, 2, 3, 4, 5]
doubled = []
for number in numbers:
    doubled.append(2 * number)

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

Давайте сделаем наш удвоенный список со списком пониманием.

numbers = [1, 2, 3, 4, 5]
doubled = [2 * number for number in numbers]

С пониманием списка для петля переехала внутри Синтаксис конструктора списка (I.E., [] ). Мы сохранили две строки кода и избегали явного использования присоединиться к . Я думаю, что мы можем уверенно сказать, что код является чище.

Если это все, что могут сделать все, что можно сделать, это приятное маленькое сложное синтаксис, но может почувствовать себя в кабинете. К счастью, понятия списка могут сделать больше. Они могут также фильтр Если они предоставляются предикатом. Например, может быть, вы хотите нечетные цифры вместо удвоенных ценностей. Для этого вы пишете:

numbers = range(10)
odds = [number for number in numbers if number % 2 != 0]

Этот пример использует Диапазон Чтобы создать список номеров из 0 к 9 Отказ Понимание списка строит шансы Список и включает в себя только Номер Когда это странно ( число% 2 проверяет, что число нечетное).

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

Представьте, что вам нужен список пар координат в плоскости X/Y. Вместо письма вложенный для петли, как так:

xs = range(10)
ys = range(10)
pairs = []
for x in xs:
    for y in ys:
        pairs.append((x, y))

Вы можете написать более лаконичную версию.

xs = range(10)
ys = range(10)
pairs = [(x, y) for x in xs
                for y in ys]

Мы охватываем несколько ключевых атрибутов.

  1. Это краткий способ построить новые списки.
  2. Они включают элегантную фильтрацию.
  3. Они позволяют вложенную петлю в ясный стиль.

Появители списка являются фантастическим способом очистки ваших петель. Как только вы начнете использовать их, вы будете на вашем пути, чтобы написать больше Pythonic Code.

Pythonic Code (6 серии деталей)

Оригинал: “https://dev.to/mblayman/pythonic-code-the-list-comprehension-37c”