【发布时间】:2021-09-15 07:28:30
【问题描述】:
我有一个值列表,例如:
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我需要可重复地返回此列表的 n 次随机洗牌。
理想情况下,我需要一个带有种子的函数,例如 f(lst, samples = 2, seed = 1234)
-> 返回两个随机列表lst 如:
[5, 7, 1, 6, 2, 8, 0, 4, 3, 9]
[8, 7, 3, 0, 1, 4, 5, 9, 6, 2]
重复执行此函数(使用相同的种子)将返回相同的两个列表。
【问题讨论】:
-
你试过什么?
-
@Ade_1 我尝试了一些 np、sklearn 工具和 itertools.permutations。问题是我需要 n 次洗牌。 np 和 sklearn 只返回一次随机播放。 itertools 返回所有排列,如果输入列表很长,我会用完内存。
-
你试过使用随机库吗?
-
@tevemadar 否,因为它不会生成 n 次随机播放。一次可重复的 shuffle 不是问题。
-
@user2743931 然后产生一个n次?