2016-12-29 4 views
1

私はpeople's namestock valuedictionaryを持っていると私はtupleは株式の名前と最大値で構成されて取得したいと思います。ここに問題があります:株式価値の一部が利用できず、'NaN'として挿入されているため、それらをフィルタリングしたいと思います。オペレータの使用中にitemgetterでfilterを使用するにはどうすればよいですか?

max_stock = max(stock.iteritems(), key=operator.itemgetter(1)) 

コードにどのようにフィルタオプションを付けることができますか?

答えて

3

あなたはmax()に入る何項目フィルタリングする必要があるだろう。あなたはそこにジェネレータ式を使用することができます。

max_stock = max((kv for kv in stock.iteritems() if kv[1] != 'NaN'), 
       key=operator.itemgetter(1)) 

は、フィルタリングの後に残ったアイテムがない場合、これは今ValueErrorを上げることができるということを考慮してください!

関連する問題