我想制定一个算法来洗牌列表,然后根据这条规则制作一个所有组合的新列表:我该如何将这个列表换成这个规则?
您只能交换一对。例如:
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)
我知道我会得到列表中的一些相同的元素,因为无序对的,但它只是创造了一个完整的相同元素的列表。任何想法为什么?
你的交换是错误的。您需要一个临时变量(在用于设置[j]之前更改了一个[i])。我的方法中的代码工作不同(python风格的交换)!下次直接添加代码! – sascha