在Python中交换2个数组元素的位置

jbs*_*ssm 0 python arrays random shuffle

有没有简单的方法来交换数组中2个元素的位置 - 或者更好的是,n个元素?

我想出了一些代码,但它看起来很丑陋,性能应该有点差:

chromo = [[1,2], [3,4], [5,6]]

gene1Pos = random.randrange(0, len(chromo)-1, 1)
gene2Pos = random.randrange(0, len(chromo)-1, 1)
tmpGene1 = chromo[gene1Pos]
tmpGene2 = chromo[gene2Pos]
chromo[gene1Pos] = tmpGene2
chromo[gene2Pos] = tmpGene1
Run Code Online (Sandbox Code Playgroud)

这应该有用,但是,这并不好.更好的方法是像random.shuffle这样的例程,但不是混合所有东西,只会混合n个元素.你有什么主意吗?

lou*_*luo 6

尝试

>>> chromo[gene1Pos], chromo[gene2Pos] = chromo[gene2Pos], chromo[gene1Pos]
Run Code Online (Sandbox Code Playgroud)

因此,您只需要确保拥有正确的genXPos