gpt4 book ai didi

python - 在Python中使用字典的字典

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:36 26 4
gpt4 key购买 nike

我希望下面的代码实现的是,对于临时键值较小的字典,在该字典中添加一个键为“permanent”且值与临时键的值相同的项目。

Variable="a"
a_list={'a': {'c': '2', 'b': '1'}, 'c': {'a': '2', 'b': '3'}, 'b': {'a': '1', 'c': '3'}}
a_list[Variable]["permanent"]="1"
for item in a_list[Variable].keys():
try:
if a_list[Variable][item]!=0:
a_list[item]["temporary"]=a_list[Variable][item]
except KeyError:
pass
for item in a_list.keys():
if "permanent" in a_list[item].keys():
del a_list[item]

print a_list

现在的输出是

{'c': {'a': '2', 'b': '3', 'temporary': '2'}, 'b': {'a': '1', 'c': '3', 'temporary': '1'}}

但是添加语句后我希望输出为

{'c': {'a': '2', 'b': '3', 'temporary': '2'}, 'b': {'a': '1', 'c': '3', 'temporary': '1', 'permanent': '1'}}

我不知道如何通过比较两个字典中的两个临时键来实现这一点。非常感谢任何帮助!

最佳答案

min 函数将迭代列表。如果给定一个特殊的 key= 命名参数,它将使用作为 key= 函数传入的单参数函数来提取用于比较目的的值。

您仅使用包含数字的字符串来显示字典。因此,最大字符串为“A”(按 asciibet 方式晚于数字)。所以:

max_value = 'A'
min_temp = min(a_list.keys(), key= lambda k: a_list[k].get('temporary', max_value))

此时,min_temp 具有 a_list 中的第一个键,该键具有子字典键“temporary”的最低值,或者如果没有该子键,则keys() 返回的第一个键(默认值为 max_value)。因此,让我们仔细检查它是否是有效的匹配:

if 'temporary' in a_list[min_temp]:
a_list[min_temp]['permanent'] = a_list[min_temp]['permanent']

关于python - 在Python中使用字典的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35106688/

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