-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我不能对待初始列表,因为这是合成数据,对于设置的一种方式,真正的列表有很多键,我不能手动完成。 –