Order = list(range(len(myList)))
# Order is a list having the same number of items as myList,
# where each position's value equals its index
random.seed(SEED)
random.shuffle(Order)
# Order is now shuffled in the same order as myList;
# so each position's value equals its original index
originalList = [0]*len(myList) # empty list, but the right length
for index,originalIndex in enumerate(Order):
originalList[originalIndex] = myList[index]
# copy each item back to its original index
print originalList
结果
你的名单现在是伪随机的。
“Pseudo”很重要,因为具有相同种子和项目数的所有列表都将以相同的“random”顺序返回。我们可以用这个来取消你的列表;如果它真的是随机的,这是不可能的。
结果
塔达!originalist现在是myList的原始顺序。
对python文档的简单检查 http://docs.python.org/library/random.html 告诉你关于
你可以用来初始化种子。
要再次按初始顺序获取项目,请再次设置种子并再次获取随机数。然后,您可以使用此索引来获取列表中的内容,或者只使用索引来获取任何内容。
你只需对列表进行排序,它就会重新排序。
相关问题 更多 >
编程相关推荐