Кнопки вверх и вниз для ListView вместо панели прокрутки

В Python 3 print () - это функция, а не оператор.

Выражение генератора похоже на понимание списка, за исключением того, что создает объект, который дает результаты , когда вы перебираете его , а не когда вы его создаете. Например,

[i*i for i in range(5)]

создает список [0, 1, 4, 9, 16], а

(i*i for i in range(5))

создает объект-генератор, который будет генерировать эти числа, когда вы перебираете его.

Если вы даете функцию только одному аргументу и это выражение генератора, вы можете опустить скобки вокруг выражения генератора, поэтому вам не нужно делать myfunc ((i + 1 для i в чем-то)).

Итак, вы создаете объект-генератор и передаете его функции print (), которая печатает его представление. Это делает именно то, о чем вы просили, а не то, что вы хотели спросить.

Вы можете инициализировать список из выражения генератора:

print(list(i*i for i in range(5)))

, но его проще в использовании понимание списка:

print([i*i for i in range(5)])

Простым примером того, как вы можете использовать объект-генератор, является:

for value in (i * i for i in range(5)):
    print value

, хотя в этом простом примере, очевидно, было бы легче написать:

for i in range(5):
    print i * i
0
задан Xitrum 26 February 2015 в 08:31
поделиться