Итак, я пытаюсь снять трюк, о котором я впервые услышал на этом сайте.Вызов печати в середине понимания списка python
[i for i in range(0, 10) if True or print(i)]
Идея заключается в том, что вы можете вызвать произвольную функцию на каждом шагу в listcomp, воткнув его в «если» заявление, что всегда будет возвращать True. Но этот код дает синтаксическую ошибку.
Если я обернуть функцию я хочу назвать так, хотя:
def f(i):
print i
[i for i in range(0, 10) if True or f(i)]
производит желаемый результат. Поэтому мне было интересно, какая разница, в разуме Python, между ними, потому что я не могу сказать, что это может быть - обе функции возвращают «Нет», правильно?
'от __future__ import print_function'; но зачем вам вообще иметь побочный эффект? –
Не используйте исключения списков вместо цикла for, если вам действительно не нужен список, который он производит. – chepner