首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字典中的最大值但不等于1

字典中的最大值但不等于1
EN

Stack Overflow用户
提问于 2019-07-18 11:12:05
回答 2查看 238关注 0票数 0

我需要从字典中找到最大值,但是值不能等于1。

这是我的密码。我可以得到最大值,但我不需要值1。

代码语言:javascript
复制
maximum_value = max(dictionary, key=dictionary.get)

这里有什么表达或什么我可以包括吗?

这是我的字典-

代码语言:javascript
复制
{'diagnosis': 0.9210526315789473, 'radius_mean': 0.8421052631578947, 'smoothness_mean': 1.0, 'compactness_mean': 1.0, 'concavity_mean': 1.0, 'concave points_mean': 1.0, 'symmetry_mean': 1.0, 'fractal_dimension_mean': 1.0, 'radius_se': 0.9473684210526315, 'texture_se': 0.5263157894736842, 'perimeter_se': 0.4824561403508772, 'smoothness_se': 1.0, 'compactness_se': 1.0, 'concavity_se': 1.0, 'concave points_se': 1.0, 'symmetry_se': 1.0, 'fractal_dimension_se': 1.0, 'radius_worst': 0.8157894736842105, 'smoothness_worst': 1.0, 'compactness_worst': 0.9912280701754386, 'concavity_worst': 0.9824561403508771, 'concave points_worst': 1.0, 'symmetry_worst': 1.0, 'fractal_dimension_worst': 1.0}

我不需要那些包含1.0的值。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-18 11:43:10

我可以想出两种简单的方法来做到这一点。首先,您可以使用numpys无穷大值,并在值为1时返回这个值,如下所示:

代码语言:javascript
复制
import numpy as np
stats = {'a':1, 'b':0.7, 'c': -1}
maximum_value = max(stats.values(), key=lambda x: x if x != 1 else -np.inf )

否则,您还可以筛选字典,以便在取最大值之前排除值1,即

代码语言:javascript
复制
maximum_value = max(filter(lambda x: x !=1, stats.values()))

如果像给定的代码一样,您希望知道密钥,则可以使用筛选过的字典代替以前的操作,如

代码语言:javascript
复制
maximum_key =  max(filter(lambda x: stats[x] !=1, stats.keys()), key = stats.get)
票数 2
EN

Stack Overflow用户

发布于 2019-07-18 11:17:25

您可以创建一个条件片并从中获取最大值。

代码语言:javascript
复制
maximum_value = max([i for i in dictionary.values() if i != 0])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57093162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档