gpt4 book ai didi

python - 将单个字典的不同键合并到Python中的一个键

转载 作者:行者123 更新时间:2023-12-04 15:27:34 25 4
gpt4 key购买 nike

我有一本字典,如:

d = {
'S1': {
'S11': {'first': 'a', 'second': 'b'},
'S12': {'first': 'c', 'second': 'd'}
},

'S2': {
'S21': {'first': 'l', 'second': 'e'},
'S22': {'first': 'd', 'second': 't'}
},
'S3': {
'S31': {'first': 'z', 'second': 'p'},
'S32': {'first': 'x', 'second': 'g'}
}

}

我想合并这个字典,如:
{
'S': {
'S11': {'first': 'a', 'second': 'b'},
'S12': {'first': 'c', 'second': 'd'},
'S21': {'first': 'l', 'second': 'e'},
'S22': {'first': 'd', 'second': 't'},
'S31': {'first': 'z', 'second': 'p'},
'S32': {'first': 'x', 'second': 'g'}

}
}

问题是实际上我有 s1, s2, s3 .....s100 并且我目前的方法不是很清楚。
有人可以提出更好的方法来实现这一目标吗?

谢谢

最佳答案

使用 ChainMap .

>>> from collections import ChainMap
>>> c = {'S': ChainMap(*d.values())}
>>> c['S']['S32']
{'first': 'x', 'second': 'g'}

您可以转换 ChainMap回到字典,如果你喜欢。
>>> c = {'S': dict(ChainMap(*d.values()))}
>>> c
{'S': {
'S31': {'first': 'z', 'second': 'p'},
'S32': {'first': 'x', 'second': 'g'},
'S21': {'first': 'l', 'second': 'e'},
'S22': {'first': 'd', 'second': 't'},
'S11': {'first': 'a', 'second': 'b'},
'S12': {'first': 'c', 'second': 'd'}}
}

关于python - 将单个字典的不同键合并到Python中的一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61969373/

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