什么是最能转化这个的方式:
{'a': ['apple1', 'apple2', 'apple3'], 'b': ['banana1', 'banana2', 'banana3']}
为什么要这么做
[{'a': 'apple1', 'b': 'banana1'}, {'a': 'apple2', 'b': 'banana2'}, {'a': 'apple3', 'b': 'banana3'}]
我更喜欢不使用数组理解的解决方案
这是我目前的做法
d = {
'a': ['apple1', 'apple2', 'apple3'],
'b': ['banana1', 'banana2', 'banana3']
}
r = []
for k,v in d.items():
for i in range(len(v)):
if len(r) <= i:
r.append({})
r[i][k] = v[i]
您可以使用以下方法:
使用
d
原始词典这会产生:
代码的工作方式如下,可以保证-给定的字典不会更改-
d.keys()
和d.values()
以相同的顺序生成键/值:因此您可以dict(zip(d.keys(),d.values()))
返回到原始字典中现在我们要做的是用
zip(*d.values())
对字典的.values()
进行转置。对于每个这样的“列”(transpose的),我们用d.keys()
压缩该列并将其转换为字典(用dict(..)
),通过使用列表理解,我们最终将遍历所有行请注意,迭代从值中的一个列表用尽时停止
相关问题 更多 >
编程相关推荐