通过执行以下操作,我可以获得具有最大值的第一个出现的密钥:
# history = {1: 1.0, 3: 5.0, 4: 5.0}
max_key = max(history, key=lambda key: history[key])
总会让我回复3.我如何更改max_key
以便随机选择键3或4?我尝试用np.random.choice()
包装它,但这给了我一个错误。
答案 0 :(得分:1)
只需在原始方法后添加一步:
import random
max_key = max(history, key=lambda key: history[key])
random.choice([i for i, j in history.items() if j == history[max_key]])
答案 1 :(得分:1)
首先,找到最大值:
>>> history = {1: 1.0, 3: 5.0, 4: 5.0}
>>> max_val = max(history.values())
然后获取具有最大值的键列表:
>>> max_keys = [k for k in history if history[k] == max_val]
然后从该列表中随机选择:
>>> import random
>>> random.choice(max_keys)
4
>>> random.choice(max_keys)
3
答案 2 :(得分:0)
np.random.choice([key for key in history.keys() if history[key]==max(history.values())])
答案 3 :(得分:0)
您还可以使用.items()
:
import random # you don't need numpy here
max_value = max(history.values())
random.choice([
key
for key, value in history.items()
if value == max_value
])