2017-12-17 16 views
0

ここでは非常に一般的で簡単な質問かもしれません... 私の目的は、その値に従って辞書をグループ化することです。等価で辞書をグループ化する

D = {"k1":1,"k2":2,"k3":1,"k4":0,"k5":1,"k6":0} 

出力は

part1=[0,[k4,k6]] part2=[1,[k1,k3,k5]] part3=[2,[k2]] 
+0

あなたは何を試しましたか、それはなぜあなたのために働いていませんか? –

答えて

1
def filter_by_value(dictionary, value): 
    return [value, [i for i in dictionary if dictionary[i] == value]] 

ように見えるそして、あなたはすべての値でそれをしたい場合は辞書には、あなたがちょうどできています

def group_by_values(dictionary): 
    #set ensures there are no repeated values 
    return [filter_by_value(dictionary, i) for i in set(dictionary.values())] 

なく、少なくとも最後にリストをソートするには、ソート関数をセットの後に追加するだけです:

def group_by_values(dictionary): 
    #set ensures there are no repeated values 
    return [filter_by_value(dictionary, i) for i in sorted(set(dictionary.values()))] 
+0

ヤディー、あなたのための小さな一歩、しかし私のための大きな一歩をありがとう。 –

+0

それはあなたを助けてくれると嬉しいです:) – Yadkee

関連する問題