-2
假設我有這個名單使用詞典:Python列表,以不同的密鑰
In [5]: m
Out[5]: [{0: ['a', 'b'], 1: '1', 2: '2'},
{0: ['a', 'b'], 1: '3', 2: '4'},
{0: ['xx', 'yy'], 1: '100', 2: '200'},
{0: ['xx', 'yy'], 1: '300', 2: '400'}]
我這樣做:
In [6]: r = defaultdict(list)
In [7]: for k, v in ((k, v) for row in m for k, v in row.iteritems()):
r[k].append(v)
並返回:
In [8]: r
Out[8]: defaultdict(list,
{0: [['a', 'b'], ['a', 'b'], ['xx', 'yy'], ['xx', 'yy']],
1: ['1', '3', '100', '300'],
2: ['2', '4', '200', '400']})
但我想要其他的東西,像這樣:
{0: ['a', 'b'],
1: ['1', '3'],
2: ['2', '4']},
{0: ['xx', 'yy'],
1: ['100', '300'],
2: ['200', '400']}
我該怎麼做?我想在關鍵字0中取相同的值,並收集其他所有在其他關鍵字中找到的值。
非常感謝!
我不明白你要做的轉換。你能一步一步地描述如何從你擁有的東西開始,最終得到你想要的東西嗎?它不僅可能讓你獲得更好的幫助,甚至可以「點擊」如何自己做。 –
只將初始列表視爲兩個單獨的列表。你會沒事的。 – sobolevn
@sobolevn我不能對待初始列表,因爲這是合成數據,對於設置的一種方式,真正的列表有很多鍵,我不能手動完成。 –