【发布时间】:2019-04-13 12:03:47
【问题描述】:
我有一个列表,想生成有限数量的排列,没有重复的元素。
itertools.permutations(x)
给出所有可能的排序,但我只需要特定数量的排列。 (我的初始列表包含约 200 个元素 => 200!将花费不合理的时间,而且我不需要所有元素)
到目前为止我做了什么
def createList(My_List):
New_List = random.sample(My_List, len(My_List))
return New_List
def createManyList(Nb_of_Lists):
list_of_list = []
for i in range(0, Nb_of_Lists):
list_of_list.append(createList())
return list_of_list
它正在工作,但我的 List_of_list 不会有唯一的排列,或者至少我对此没有任何保证。
有什么办法可以做到吗?谢谢
【问题讨论】:
-
您在寻找所有排列的随机样本吗?如果是这样 - 您可以在 [0 到 200!-1] 中选择一组随机数字并使用 stackoverflow.com/a/8958309/4996248 之类的算法对它们进行排序
标签: python permutation itertools