gpt4 book ai didi

Python 字典最小值最大值

转载 作者:行者123 更新时间:2023-11-28 21:48:29 40 4
gpt4 key购买 nike

我有一个关于这段代码的问题:字典中的元素数量在每次迭代中都不同:

d["one"] = 12
d["two"] = 13
d["three"] = 14

maxkey, maxvalue = max(d.iteritems(), key=lambda x:x[1])
minkey, minvalue = min(d.iteritems(), key=lambda x:x[1])

如果“一个”“两个”等的值不同,则一切正常。

现在假设如下:

d["one"] = 13
d["two"] = 13


maxkey, maxvalue = max(d.iteritems(), key=lambda x:x[1])
minkey, minvalue = min(d.iteritems(), key=lambda x:x[1])

我想要以下结果:如果值相等,则 minkey、minvalue 不应与 maxkey、maxvalue 相同(如果有多个相等的条目,它应该是另一个条目/或其他条目之一)。有没有一种在 Python 中实现它的简单方法?非常感谢您的帮助

例子:

d["one"] = 12
d["two"] = 12
d["three"] = 12
minkey, minvalue = min(d.iteritems(), key=lambda x:x[1])
maxkey, maxvalue = max(d.iteritems(), key=lambda x:x[1])

结果

minkey = "three"
maxkey = "three"

但我想,如果

minkey = "three"

那么maxkey应该是

maxkey = "one"

maxkey = "two"

最佳答案

您可以在查找最小值和最大值(优先级较低)时考虑 key :

maxkey, maxvalue = max(d.iteritems(), key=lambda x: (x[1], x[0]))
minkey, minvalue = min(d.iteritems(), key=lambda x: (x[1], x[0]))

因此,在寻找极值时,我不会只比较 dict values,而是比较 (value, key) 元组。元组首先通过第一个元素进行比较,即给定元组 T1T2,首先 T1[0]T2[0 ]。如果 T1[0]==T2[0],则比较第二个元素:T1[1]T2[1]。因此,在我的例子中,如果值相等,则比较 dict 键,即键与较低优先级进行比较

关于Python 字典最小值最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35297842/

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