Pot*_*ler 2 python random dictionary list python-3.x
我想返回字典中具有最高值的键,如果有平局,则随机选择其中一个。我知道如何获得最大值,但无法弄清楚如何打破平局。
max(result, key = result.get)
Run Code Online (Sandbox Code Playgroud)
这让我得到最大值,但如果字典有平局,那么它只会给我它遇到的第一个
鉴于字典 {'banana': 3, 'apple': 2, 'cherry': 1, 'orange': 3}
输出必须要么给出banana要么orange,但随机。
首先max从字典中获取值
import random
maxValue = max(result.values())
Run Code Online (Sandbox Code Playgroud)
然后list使用List Comprehensions收集所有具有最大值的键
keys = [key for key, value in result.items() if value == maxValue]
Run Code Online (Sandbox Code Playgroud)
现在从 keys
choice = random.choice(keys)
Run Code Online (Sandbox Code Playgroud)