pylint: Используя возможно неопределенную переменную цикла 'n'

Pylint заявляют

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 (список (итератор)) не является лучшим выбором, потому что необходимо сделать два цикла. Используя счетчик и постепенное увеличение его я думаю, что это не очень pythonic.

6
задан Ruggero Turra 26 February 2010 в 19:38
поделиться

2 ответа

Рассматривали ли вы простую инициализацию n значением None перед запуском цикла?

10
ответ дан 8 December 2019 в 18:35
поделиться

Определите значение по умолчанию для n перед оператором для :

iterator = (i*i for i in range(100) if i % 3 == 0)

n=None
for n, i in enumerate(iterator):
    do_something(i)

print n
3
ответ дан 8 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: