gpt4 book ai didi

python - 测试字典的所有值是否相等 - 当值未知时

转载 作者:行者123 更新时间:2023-11-28 19:33:11 31 4
gpt4 key购买 nike

我有 2 部词典:每个字典中的值应该都相等。
但是我不知道那个数字是多少...

dict1 = {'xx':A, 'yy':A, 'zz':A}
dict2 = {'xx':B, 'yy':B, 'zz':B}

注意 A 不等于 B
N.B. A 和 B 实际上都是十进制数字的字符串(例如“-2.304998”),因为它们是从文本文件中提取的

我想创建另一个字典 - 有效地总结这些数据 - 但前提是每个字典中的所有值都相同。

summary = {}
if dict1['xx'] == dict1['yy'] == dict1['zz']:
summary['s'] = dict1['xx']
if dict2['xx'] == dict2['yy'] == dict2['zz']:
summary['hf'] = dict2['xx']

有没有一种巧妙的方法可以在一行中完成此操作?

我知道可以使用理解来创建字典
summary = {k:v for (k,v) in zip(iterable1, iterable2)}
但我正在努力解决底层的 for 循环和 if 语句...

一些建议将不胜感激。

我看过this question ,但答案似乎都依赖于已经知道被测试的值(即字典中的所有条目是否等于已知数字) - 除非我遗漏了一些东西。

最佳答案

set 是一种可靠的方式,但仅出于代码高尔夫的目的,这里有一个可以处理不可散列的字典值的版本:

expected_value = next(iter(dict1.values())) # check for an empty dictionary first if that's possible
all_equal = all(value == expected_value for value in dict1.values())

all 在不匹配时提前终止,但 set 构造函数已经足够优化,如果不对实际测试数据进行分析,我不会说这很重要。处理不可散列的值是此版本的主要优势。

关于python - 测试字典的所有值是否相等 - 当值未知时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45020701/

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