有什麼簡單的方法可以在數組中交換2個元素的位置 - 或者更好的是n個元素嗎?Python中2個數組元素的交換位置
我想出了一些代碼,但它看起來很醜陋,性能應該是有點不好:
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個元素。你有什麼主意嗎?
請參閱http://stackoverflow.com/questions/4554130/fastest-way-to-swap-elements-in-python-list討論編譯到的內容以及爲什麼它是最快的。 – dkamins 2011-12-31 02:23:43
謝謝。這有點漂亮,dkamins指出,速度更快。 – jbssm 2011-12-31 02:27:06