2017-03-23 20 views
0

私はこのようになりますリストがあります:私は今、やりたい何リストから項目をフィルタリング

<type 'list'> 
[('crap', 0), ('jou', 0), ('gaat', 0), ('awesome', 0), ('awesome?', 0), ('met', 0), ('nou', 0), ('useless', 0), ('bananen', -1.4447848426728962), ('appels', -1.8073549220576042)] 

は「bananen」の値フィルターである - 場合は、しかし、> -1.44

を私は:

item = [elem for elem in top_neg if elem[1] == 'bananen'] 
print(item) 

これは私に空のアイテムを与えます。ここで何がうまくいかないのかな?

+0

インデックスは、ゼロベースです。 'elem [0]'をチェックする必要があります。 – kazemakase

+0

辞書を使用しているようです。自分のルックアップをロールバックする必要はありません。 – sphennings

答えて

0
print([elem for elem in top_neg if elem[0] == 'bananen']) 

あなたは、私は辞書にリストを変換する方が良いと思い間違った要素に

0

をテストしている、辞書のための利点は次のとおりです。

  1. あなたが鍵をかどうかを確認することができます存在するかどうか;
  2. Pythonでの辞書の時間の複雑さはほとんどがO(1)なので、大きなデータセットを持つと非常に速くなります。

例を参照:

sample_list = [('crap', 0), ('jou', 0), ('gaat', 0), ('awesome', 0), ('awesome?', 0), ('met', 0), ('nou', 0), ('useless', 0), ('bananen', -1.4447848426728962), ('appels', -1.8073549220576042)] 

sample_dic = dict(sample_list) 

sample_dic.get('bananen', -99) 
# -1.4447848426728962 

sample_dic.get('banaeeeeeeeee',-99) 
# -99 

sample_dic.get('appels', -99) 
# -1.8073549220576042 
関連する問題