检查字典的所有值是否相等 - 当值未知时
我有 2 字典:
每个字典中的值
应该
等于。
但
我不知道这个号码中的内容是什么......
N.B.
A 不平等 B
N.B.
和 A, 和 B 事实上是十进制数的字符串 /例如, '-2.304998'/, 由于它们是从文本文件中提取的
我想创建一个有效地总结此数据的另一种字典,但仅当每个字典中的所有值都是相同的。
它是。
在一条线上有一种简洁的方式吗?
我知道你可以使用理解创建字典
但我与底层斗争 for loop, 所以和s。 if statement...
我会感激一些技巧。
我见过
https://coderoad.ru/35253971/
, 但所有答案似乎都依赖于可验证价值已经知道的内容。 /也就是说,字典中的所有条目都等于众所周知的数字。/ - 如果我不错过一些东西。
每个字典中的值
应该
等于。
但
我不知道这个号码中的内容是什么......
dict1 = {'xx':A, 'yy':A, 'zz':A}
dict2 = {'xx':B, 'yy':B, 'zz':B}
N.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 loop, 所以和s。 if statement...
我会感激一些技巧。
我见过
https://coderoad.ru/35253971/
, 但所有答案似乎都依赖于可验证价值已经知道的内容。 /也就是说,字典中的所有条目都等于众所周知的数字。/ - 如果我不错过一些东西。
没有找到相关结果
已邀请:
5 个回复
莫问
赞同来自:
S是一种可靠的方式来到这里,但仅适用于高尔夫球目标。这是一个可以处理没有哈希值的版本。 dict:
由于不一致而结束,但集合构造函数非常优化,以便我不说它在没有实际测试数据上进行分析的情况。 处理不可忽略的值是此版本的主要优势。
涵秋
赞同来自:
. 你知道吗
迭代有一个长度 1, 如果其中只有一个值:
当然,这仅适用于您的字典值是哈希。
窦买办
赞同来自:
为此,当输入数据很大时,它具有许多缺陷。 它可以采用与输入信号的大小成比例的存储器,并且即使在早期发现两个不同的值,也始终扫描整个输入信号。 此外,必须哈希输入数据。
对于3个关键的迪克斯,它并不重要,但对于较大,而不是使用
, 我们可以用
https://docs.python.org/3/libr ... oupby
看看他是否创建了几组:
莫问
赞同来自:
总是
O/N/ 在时间和记忆中。 在实践中,这可能更快,尽管取决于值分布。
此外,自从 set 使用散列操作,您还可以对您的时间成本具有速度大的常量倍数。 当你需要的一切时,你的价值观应该是Hashier。
理论上
从字典中获取第一个值,并在剩余值中查找不等于的剩余值中的第一个示例。
放
可能比下面的解决方案更快,因为他的工作可以减少到 C 执行。
在上面的情况下:
相当于:
董宝中
赞同来自:
https://coderoad.ru/42880043/
适合小词典,但我不确定大词典,因为我们得到了所有的值来选择第一个