2
共有キーを持つ辞書のリストをキーにマージしようとしています:リストにすべての値が含まれているリストのペアリング。下のコードがそれをしますが、それは非常に醜いです。私は、これを達成するためにディクショナリのリストでreduceを使用できることを漠然として覚えていますが、私は迷っています。ディクショナリのリストを辞書キーにマージする方法:リストのペアリングですか?
1 dictionaries = [{key.split(',')[0]:key.split(',')[1]} for key in open('test.data').read().splitlines()]
2 print dictionaries
3 new_dict = {}
4 for line in open('test.data').read().splitlines():
5 key, value = line.split(',')[0], line.split(',')[1]
6 if not key in new_dict:
7 new_dict[key] = []
8 new_dict[key].append(value)
9 print new_dict
出力:
[{'abc': ' a'}, {'abc': ' b'}, {'cde': ' c'}, {'cde': ' d'}]
{'cde': [' c', ' d'], 'abc': [' a', ' b']}
test.dataは含まれています
abc, a
abc, b
cde, c
cde, d
コード。 – wwii
@wwii:動作するコードは* fine *です。美しいコードは目を楽しませています –