Поиск по вложенному списку и вывод результата в ошибке Python - PullRequest
2 голосов
/ 02 марта 2012

Я был здесь в течение нескольких месяцев, изучая Python на примерах, но пришло время спросить его для себя.

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

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

customers = [['00:00:02', 'S3'], ['00:00:46', 'S2']]

[item for item in customers if 'S2' in item[1]]
print('%s %s') % (item[1], item[0])

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

UnboundLocalError: local variable 'item' referenced before assignment

Вероятно, это очень простой вопрос, но как я могу предотвратить возникновение этой ошибки?

1 Ответ

2 голосов
/ 02 марта 2012

В python 2.x переменные, используемые внутри понимания списка (здесь item), просачиваются из понимания списка в окружающую область видимости. Использование его впоследствии не является хорошей идеей или ясным кодом. Попробуйте что-то вроде этого:

filtered_list = [item for item in customers if 'S2' in item[1]]
for item in filtered_list:
    print('%s %s') % (item[1], item[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...