Пилинт говорит
W: 6: Using possibly undefined loop variable 'n'
с этим кодом:
iterator = (i*i for i in range(100) if i % 3 == 0)
for n, i in enumerate(iterator):
do_something(i)
print n
потому что, если итератор пуст (например, []), n не определено, хорошо. Но мне нравится этот трюк. Как безопасно пользоваться им?
Я думаю, что использование len (list (iterator)) не лучший выбор, потому что вы должны сделать два цикла. Используя счетчик и увеличивая его, я думаю, что он не очень питонический.