gpt4 book ai didi

python - 将字典的字典转换为列表的字典

转载 作者:太空狗 更新时间:2023-10-30 02:26:03 25 4
gpt4 key购买 nike

我有一个字典的字典:

d = {"a": {"x":1, "y":2, "z":3}, "b": {"x":2, "y":3, "z":4}, "c": {"x":3, "y":4, "z":5}}

我想把它转换成:

new_d = {"x":[1, 2, 3], "y": [2, 3, 4], "z": [3, 4, 5]}

要求是 new_d[key][i]new_d[another_key][i] 应该在 d< 的同一个子字典中.

所以我创建了 new_d = {} 然后:

for key in d.values()[0].keys():
new_d[key] = [d.values()[i][key] for i in range(len(d.values()))]

这给了我预期的结果,但我只是想知道是否有一些内置函数可用于此操作或是否有更好的方法来执行此操作。

最佳答案

这个操作没有内置函数,没有。我只是循环 values直接:

new_d = {}
for sub in d.itervalues(): # Python 3: use d.values()
for key, value in sub.iteritems(): # Python 3: use d.items()
new_d.setdefault(key, []).append(value)

这避免了每次为 dict.values() 调用创建一个新列表。

请注意,字典没有顺序。然而,结果列表中的值将符合您的标准;对于 new_d 中的每个键,它们将以相同的顺序添加:

>>> d = {"a": {"x":1, "y":2, "z":3}, "b": {"x":2, "y":3, "z":4}, "c": {"x":3, "y":4, "z":5}}
>>> new_d = {}
>>> for sub in d.values():
... for key, value in sub.items():
... new_d.setdefault(key, []).append(value)
...
>>> new_d
{'x': [1, 2, 3], 'y': [2, 3, 4], 'z': [3, 4, 5]}

关于python - 将字典的字典转换为列表的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46422214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com