2012-03-02 80 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