【发布时间】:2017-06-12 16:26:19
【问题描述】:
我正在尝试制作一个算法来打乱一个列表,然后根据这个规则制作一个所有组合的新列表:
您只能交换一对。例如:
array = [1, 2, 3]
[3, 2, 1] #number at index 0 switched with number at index 2
关于如何编写它的任何想法?
编辑: Saschas 代码运行良好。我在问问题之前写了这段代码:
sols = []
for i in range(len(a)):
for j in range(len(a)):
a[i] = a[j]
a[j] = a[i]
sols_perm.append(a)
我知道由于无序对,我会在列表中获得一些相同的元素,但它只是创建了一个充满相同元素的列表。有什么想法吗?
【问题讨论】:
-
您的交换错误。您需要一个临时变量(a[i] 在用于设置 a[j] 之前已更改)。我的方法中的代码工作方式不同(python 样式交换)!下次直接加代码!
标签: python arrays algorithm shuffle