我已经在这里通过示例学习 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
这可能是一个非常基本的问题,但我怎样才能阻止这个错误的发生?
最佳答案
在 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])
关于python - 搜索嵌套列表并在Python错误中输出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529369/