2017-11-18 8 views
0

私は次のような辞書のリストを持っています。Pythonで各キーの要素の頻度を確認します

mylist = [ {"0": ["code1", "code5"], "1" ["code8", "code7", "code2"]}, 
{"1": ["code2", "code3"], "2" ["code4", "code5", "code7"], "3": ["code1", "code10"]}, 
{"0": ["code8", "code5", "code1"], "2" ["code7", "code5", "code2"]} ] 

ここで、辞書の各キーのコード数を計算します。たとえば、"0": ["code1", "code5"]"0": ["code8", "code5"]は、次のようになります。mydict_for_0 = {"code1": 1, "code5": 2, "code8": 1}

したがって、上記のmylistの出力は次のようになります。

mydict_for_0 = {"code1": 2, "code5": 2, "code8": 1} 
mydict_for_1 = {"code2": 2, "code3": 1, "code7": 1, "code8": 1} 
mydict_for_2 = {"code4": 1, "code5": 2, "code7": 2, {"code2": 1} 
mydict_for_3 = {"code1": 1, "code10": 1} 

私はこれをpythonで手助けしてください!

+0

これは、符号化サービスのウェブサイトではありません。あなたは仕事をしていますか、もっと具体的な問題に遭遇したら、ここに投稿してください。 – alfasin

+0

あなたはこれまでに何を試していますか? –

答えて

0

defaultdict(list)に保存し、1つのリストにそれらを拡張し、すべて同じキーの値のリストを見つけ、defaultdictcollectionsモジュールからCounterを試してみてくださいかもしれない:

from collections import defaultdict, Counter 
new_dict = defaultdict(list) 
for e in mylist: 
    for key,value in e.items(): 
     new_dict[key].extend(value) 

new_dictは:

defaultdict(list, 
      {'0': ['code1', 'code5', 'code8', 'code5', 'code1'], 
      '1': ['code8', 'code7', 'code2', 'code2', 'code3'], 
      '2': ['code4', 'code5', 'code7', 'code7', 'code5', 'code2'], 
      '3': ['code1', 'code10']}) 
その後

は、ループのすべての項目のリストの発生をカウントするために、Counterに値のリストを渡す:

result = {} 
for key,value in new_dict.items(): 
    result['mydict_for_'+key] = dict(Counter(value)) 

resultは次のようになります。

{'mydict_for_0': {'code1': 2, 'code5': 2, 'code8': 1}, 
'mydict_for_1': {'code2': 2, 'code3': 1, 'code7': 1, 'code8': 1}, 
'mydict_for_2': {'code2': 1, 'code4': 1, 'code5': 2, 'code7': 2}, 
'mydict_for_3': {'code1': 1, 'code10': 1}} 
0

これは、ソリューション

final_result = [] 
for i in mylist: 
    current_list = mylist[i] 
    d = {} 
    for key in current_list: 
     try: 
      d[m]+=1 
     except KeyError as e: 
      d.update({m: 1}) 
     final_result.append(d) 

for i in final_result: 
    print(i) 
関連する問題