Python Для l oop другой синтаксис - PullRequest
0 голосов
/ 18 апреля 2020

Я использую доску PYNQ и следую некоторым учебникам. В одном из них они используют для l oop, но я плохо понимаю синтаксис:

leds = [base.leds[index]) for index in range(MAX_LEDS)]

Я имею в виду, почему одна скобка? такое специальный синтаксис?

1 Ответ

2 голосов
/ 18 апреля 2020

Это называется пониманием списка.

Понятия списка - это особый вид выражения в Python. Возвращение к списку, ну, список. Они в основном предназначены для замены простого кода построения списка, который в противном случае потребовал бы традиционного для l oop.

Например, следующее l oop:

leds = []
for index in range(MAX_LEDS):
    leds.append(base.leds[index])

Может быть переписать в виде понимания списка, которое вы показали:

leds = [base.leds[index] for index in range(MAX_LEDS)]

Список понимания также позволяет фильтровать элементы. Так, например, приведенный выше l oop может быть дополнительно расширен до:

leds = []
for index in range(MAX_LEDS):
    if 'green' in base.lends[index]:
        leds.append(base.leds[index])

и может быть преобразован в следующее понимание списка:

leds = [base.leds[index] for index in range(MAX_LEDS) if 'green' in base.leds[index]]

Пожалуйста, ознакомьтесь с точным синтаксисом онлайн.

...