【发布时间】:2025-11-30 22:15:01
【问题描述】:
我的程序计算 3 个不同值出现的次数,并将它们存储在像这样的列表中 classes = [class1,class2,class3]
我想返回最大值的索引,但是这些值经常会重复。如果是这种情况,我想返回一个在最大值之间随机选择的索引。
例如,如果我有classes = [5,2,5],我想输出 0 或 2。
如果我有classes = [1,1,1],0,1 和 2 就可以了。
最后,如果我有classes = [1,10,1],我想输出1。
到目前为止,我已经从其他问题中拼凑出这一点,但它的行为不是我想要的,我不明白为什么。
classes = [class1,class2,class3]
dupes = [n for n, x in enumerate(classes) if x in classes[:n]]
class_prediction = dupes[random.randint(0,len(dupes))] + 1
(最后的+1是返回实际的类标签而不是索引。)
【问题讨论】:
-
澄清一下,你真的需要随机选择其中一个吗? (不是,例如,只返回第一个最大值的索引可以吗?)
-
@smarx 是的,完全正确。如果我总是返回第一个,class1 将在我的结果中出现过多。 (我正在实现一个 KNN 算法)
标签: python python-2.7 random max