我有一个类似的列表
key_list=[(2, 'just', 'sd'), (2, 'great', 'sd'), (1, 'just great', 'sd')]
我想为每个元素在列表的 0 索引处选择最大值,例如这里最大值为 2,但是当不同集合中相同值有两个最大值时,它会随机返回一个元素,例如 (2 , 'just', 'sd')
和 (2, 'great', 'sd')
的最大值为 2,并返回其中任意一个。
我已经写了
max([i[0] for i in list_keys])
获得最大值但不知道如何根据这个“2”选择随机值
最佳答案
有两种方法可以做到这一点:
(1) 随机选择符合最大值的条目:
import random
key_list=[(2, 'just', 'sd'), (2, 'great', 'sd'), (1, 'just great', 'sd')]
m = max(i[0] for i in key_list)
print(random.choice([i for i in key_list if i[0] == m]))
(2) 使用应用随机决胜局的特殊关键函数:
print(max(key_list, key=lambda i: i[0] + random.random()))
# or
print(max(key_list, key=lambda i: (i[0], random.random())))
关于python - 选择最大值时从列表中返回随机值并且具有 2 个相同的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855393/