2012-03-02 68 views
2

我已经在这里学了几个月从示例中学习python的内容,但是现在是为自己问一个问题的时候了。搜索嵌套列表并在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”的条件,但如果没有(因为页面IM刮擦可能没有一个)我得到一个错误:

UnboundLocalError: local variable 'item' referenced before assignment 

这可能是一个非常基本的问题,但我怎样才能阻止这种错误的发生?

回答

2

在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]) 
+0

太棒了!非常感谢你指出:) – Josh 2012-03-02 07:38:28