我有持有對鍵/值Python列表:列表轉換爲每個鍵具有多個值的字典轉換?
l=[ [1, 'A'], [1, 'B'], [2, 'C'] ]
我要將列表轉換成一個字典,其中每個鍵多個值將被彙總到一個元組:
{ 1:('A', 'B'), 2:('C',) }
迭代解決方案很簡單:
l=[ [1, 'A'], [1, 'B'], [2, 'C'] ]
d={}
for pair in l:
if d.has_key(pair[0]):
d[pair[0]]=d[pair[0]]+tuple(pair[1])
else:
d[pair[0]]=tuple(pair[1])
print d
{1: ('A', 'B'), 2: ('C',)}
是否有完成這個任務,更優雅,Python的解決方案嗎?
S/multilpe /多 – vstrien 2011-03-21 13:36:24
'has_key'是的道路上的垃圾箱Python歷史記錄 - 如果您必須測試字典中是否存在密鑰,請使用新的語法「if key in dict:'。但是對於你的問題的「答案」是@ eumiro的defaultdict方法。 – PaulMcG 2011-03-21 13:43:58
@vstrien謝謝。添加一個'/ g'會使它更通用:-) – 2011-03-21 13:51:57