我需要从字典中找到最大值,但是值不能等于1。
这是我的密码。我可以得到最大值,但我不需要值1。
maximum_value = max(dictionary, key=dictionary.get)这里有什么表达或什么我可以包括吗?
这是我的字典-
{'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的值。
提前谢谢。
发布于 2019-07-18 11:43:10
我可以想出两种简单的方法来做到这一点。首先,您可以使用numpys无穷大值,并在值为1时返回这个值,如下所示:
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,即
maximum_value = max(filter(lambda x: x !=1, stats.values()))如果像给定的代码一样,您希望知道密钥,则可以使用筛选过的字典代替以前的操作,如
maximum_key = max(filter(lambda x: stats[x] !=1, stats.keys()), key = stats.get)发布于 2019-07-18 11:17:25
您可以创建一个条件片并从中获取最大值。
maximum_value = max([i for i in dictionary.values() if i != 0])https://stackoverflow.com/questions/57093162
复制相似问题