【发布时间】:2012-01-30 22:23:22
【问题描述】:
有什么简单的方法可以交换数组中 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
这应该可以,但是不好。更好的方法是像 random.shuffle 这样的例程,但不是混合所有内容,而是混合 n 个元素。你有什么想法吗?
【问题讨论】:
标签: python arrays random shuffle