生成另一个列表的随机排列列表

时间:2015-10-28 20:03:44

标签: python random

所以,我正试图用遗传算法来解决TSP问题。为此,我需要创建一个人口库。我要做的就是创建一个代表人口库的随机排列列表。我正在尝试使用random.shuffle。这是我应该处理该部分的代码。城市是一个城市和路线列表,我想保留人口库(N个随机排列列表):

for x in range(n):
    random.shuffle(cities)
    routes.append(cities)

它发生的事情是它只是添加相同的排列n次。有人知道我可能会缺少什么吗?

2 个答案:

答案 0 :(得分:2)

shuffle就地修改列表。您需要将列表副本添加到routes;否则会添加对同一列表的引用,该列表将处于其最后一个洗牌状态。

for x in range(n):
    random.shuffle(cities)
    routes.append(cities.copy())

答案 1 :(得分:0)

import random
print [random.sample(cities,n) for i in xrange(n)]

你可以试试这个。