繁体   English   中英

字典中的最大值

[英]max value from dictionary

我有一个字典看起来像

dic = {
   "X": 15, 
   "Y": 20, 
   "Z": 2 
}

然后我将每个字典的最小值加到每个值上。 我写这段代码

minimum = min(list(dic.values()))
dic["X"] = dic["X"] + minimum 
dic["Y"] = dic["Y"] + minimum 
dic["Z"] = dic["Z"] + minimum 

所需结果

{ "X": 17, "Y": 22, "Z": 4 }

我的代码有效,但是我认为它不是很好的解决方案。 有人比我有更好的解决方案

dic = {
   "X": 15, 
   "Y": 20, 
   "Z": 2 
}
minimum = min(dic.values())
for key in dic:
    dic[key] += minimum
print(dic)

出:

{'X': 17, 'Z': 4, 'Y': 22}

如何使用min():

min(iterable, *[, key, default ])
min(arg1, arg2, *args[, key ])

如果提供了一个位置参数,则它应该是可迭代的 返回iterable中的最小项。 如果提供了两个或多个位置参数,则返回最小的位置参数。

dic[key] = value是就地更改,无需生成新的dict容器。

或使用dict理解

minimum = min(dic.values())

dic2 = {x: val + minimum for x, val in dic.items()}

注意:对于min您无需list值; 这只会创建一个不必要的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM