2012-03-02 10 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」の条件があるが、(からこするページイムは1を持っていない可能性があるため)が存在しない場合、私はエラーを取得する場合は、上記の条件がうまく機能:

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

関連する問題