gpt4 book ai didi

python - 在保持项目排序的同时从列表中获取随机样本?

转载 作者:IT老高 更新时间:2023-10-28 21:31:23 25 4
gpt4 key购买 nike

我有一个排序列表,比方说:(它不仅仅是数字,它是一个使用复杂耗时的算法排序的对象列表)

mylist = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,9  , 10 ]

是否有一些 python 函数可以给我 N 个项目,但会保持顺序?

例子:

randomList = getRandom(mylist,4)
# randomList = [ 3 , 6 ,7 , 9 ]
randomList = getRandom(mylist,4)
# randomList = [ 1 , 2 , 4 , 8 ]

等等……

最佳答案

以下代码将生成大小为 4 的随机样本:

import random

sample_size = 4
sorted_sample = [
mylist[i] for i in sorted(random.sample(range(len(mylist)), sample_size))
]

(注意:对于 Python 2,最好使用 xrange 而不是 range)

说明

random.sample(range(len(mylist)), sample_size)

生成原始列表的索引的随机样本。

然后对这些索引进行排序以保留原始列表中元素的顺序。

最后,列表推导式根据采样索引从原始列表中提取实际元素。

关于python - 在保持项目排序的同时从列表中获取随机样本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com