Странность скобок в выражении генератора Python

Я хочу определить, содержит ли список определенную строку, поэтому я использую выражение генератора, например:

g = (s for s in myList if s == myString)
any(g)

Конечно, я хочу встроить это, поэтому я делаю это:

any((s for s in myList if s == myString))

Тогда я думаю, что это выглядело бы лучше с одинарными скобками, поэтому я пробую:

any(s for s in myList if s == myString)

на самом деле не ожидаю, что это сработает. Сюрприз! Это работает!

Так и есть этот законный Python или просто то, что позволяет моя реализация? Если это законно, каково здесь общее правило?

14
задан Ari 15 February 2012 в 16:56
поделиться