Как Вы изменяете домашнюю страницу по умолчанию в приложении Grails?

Циклы for должны быть такими же, как если бы вы записали их «нормальным» способом:

for row in table:
    for cell in row:
        print(cell)

Поэтому, когда вы включаете это в понимание списка, вы оставляете циклы как есть ( за исключением удаления ":") и просто вытянуть окончательное выражение в начало:

# you can actually "abuse" list comprehensions to have short
# loops like this, even if you don't care about the list being
# generated. It's generally not a great practice though
[print(cell) for row in table for cell in row]

Я признаю, что это немного сбивает с толку, когда вы просто читаете код слева направо. Вы просто должны помнить, чтобы сначала прочитать циклы, а затем оператор начала идет в конце. Я полагаю, что это могло быть реализовано как

[for row in table for cell in row cell]

, но я думаю, что это выглядит еще более запутанным; Труднее сказать, где заканчивается второй цикл и начинается оператор внутри него. В конце концов, это дизайнерское решение, хотя я уверен, что некоторые люди сочтут тот или иной подход более интуитивным.

33
задан Ed.T 26 August 2008 в 12:10
поделиться