【发布时间】:2021-11-30 07:14:59
【问题描述】:
假设我有一个对象列表(在 Python 中),看起来像这样(包含标识符和排名/权重):
objects = [
("object_1", 0.50),
("object_2", 0.75),
("object_3", 0.25),
("object_4", 0.01),
("object_5", 0.99),
]
我想返回同样的 objects 数组,但它们的权重是半随机的。也就是说,我总是不想返回:
[
("object_5", 0.99),
("object_2", 0.75),
("object_1", 0.50),
("object_3", 0.25),
("object_4", 0.01),
]
但宁愿允许 一些 非确定性,因此,一般来说,返回的数组 看起来像上面但也可能看起来像:
[
("object_5", 0.99),
("object_1", 0.50),
("object_2", 0.75),
("object_4", 0.01),
("object_3", 0.25),
]
编辑:我认为我问的问题与this one 不同,因为这里的排序很重要;在另一个问题中,顺序无关紧要(我认为!)。
【问题讨论】:
-
所以它可能是完全随机的?
-
@DaniMesejo 我想原始的
objects数组可能会以相反的顺序(从低权重到高权重)返回,但我希望这种可能性不太可能发生。这就是我所说的“半随机”,虽然我不确定我是否清楚。 -
谢谢大家!我之前看到过这个问题,但不确定它是否会起作用,因为 - 在我的情况下 - 顺序很重要,而链接的解决方案是针对无序样本的,我认为无论如何。像..我希望排名较高的东西比后面的位置更频繁地出现在第一位置。但是让我玩弄下面发布的答案以及链接的这个答案,并将构建类似的可视化来验证自己:)
标签: python list random ranking weighted