2017-02-21 9 views
-2

はのは、私は顧客IDのリストと、彼は買うことのアイテムのカテゴリを持っているとしましょう顧客は複数回出現することができ、同じタイプの商品を複数回購入することも可能です。カウント要素

たとえば、[ID0、1]、[ID0、2]、[ID0,1]、[ID1,1]、...がリストのどこかにある可能性があります。

list [0] = customer IDとlist [1] =彼が購入したアイテムの最も一般的なタイプ、つまりcustomerIDがリストに1回だけ表示されるようにリストを構築したいと考えています。

どうすればよいですか?

+0

あなたの試行を表示してください。 – Julien

+0

申し訳ありません。私が考えることができるのは、ネストされたループとカウンタを使用する単純な解決策です。しかし、あなたが知っているように、それは非常に非効率的です。私はPythonの初心者なので、助けることができる強力なライブラリは本当にわかりません。 –

答えて

0

私が何かが欠けていない限り、この目的のために辞書を使用できませんか? これは、基本的に重複がないことを保証し、max関数を使って最大値を得ることができます。 .get()メソッドは、キーが見つからない場合にNoneを取得するようにします。

もちろん、必要に応じて辞書をリストとして書式設定することもできます。

data = [ 
     ['ID0', 1], ['ID0', 2], ['ID0', 1], ['ID1', 1], 
     ['ID2', 5], ['ID5', 6] 
] 

dict = {} 
for item in data: 
    customer_id = item[0] 
    current_quantity = item[1] 
    #find maximum amount of what's already in dictionary vs current 
    dict[customer_id] = max(current_quantity, dict.get(customer_id)) 
関連する問題