gpt4 book ai didi

python - 如何将字典的键值对收集到 Python 中的一个大字典中?

转载 作者:行者123 更新时间:2023-12-05 09:02:18 24 4
gpt4 key购买 nike

我有以下格式的字典:

data = {
'Bob': {
'age': 12,
'weight': 150,
'eye_color': 'blue'
},
'Jim': {
'favorite_food': 'cherries',
'sport': 'baseball',
'hobby': 'running'
},
'Tom': {
'strength': 'average',
'endurance': 'high',
'heart_rate': 'low'
}
}

将 dict 中的所有词典连接成一个新词典的最 Pythonic 方法是什么,这样我最终会得到如下内容:

new_dict = {
'age': 12,
'weight': 150,
'eye_color': 'blue',
'favorite_food': 'cherries',
'sport': 'baseball',
'hobby': 'running',
'strength': 'average',
'endurance': 'high',
'heart_rate': 'low'
}

最佳答案

您可以使用 functools.reduce()建立结果,一次合并一个字典:

from functools import reduce

data = {
'Bob' : { 'age': 12, 'weight': 150, 'eye_color': 'blue' },
'Jim' : { 'favorite_food': 'cherries', 'sport': 'baseball', 'hobby': 'running' },
'Tom' : { 'strength': 'average', 'endurance': 'high', 'hear_rate': 'low' }
}

result = reduce(lambda x, y: dict(**x, **y), data.values(), {})

print(result)

这个输出:

{'age': 12, 'weight': 150, 'eye_color': 'blue', 'favorite_food': 'cherries',
'sport': 'baseball', 'hobby': 'running', 'strength': 'average',
'endurance': 'high', 'hear_rate': 'low'}

在 Python 3.9 或更高版本上,您可以使用 lambda x: x | yoperator.or_dict.__or__ 而不是 lambda x: dict(**x, **y)如果您使用的是 Python 3.9 或更高版本。后两个来自Mad Physicist的建议。 .

关于python - 如何将字典的键值对收集到 Python 中的一个大字典中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71611609/

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