def shuffle(self, x, random=None, int=int):
"""x, random=random.random -> shuffle list x in place; return None.
Optional arg random is a 0-argument function returning a random
float in [0.0, 1.0); by default, the standard random.random.
Do not supply the 'int' argument.
"""
if random is None:
random = self.random
for i in reversed(xrange(1, len(x))):
# pick an element in x[:i+1] with which to exchange x[i]
j = int(random() * (i+1))
x[i], x[j] = x[j], x[i]
我是因为列表是可变的。不能重新分配任何变量,因为它将是新变量。不能修改不可变类型变量。您可以修改可变变量。在
所以:
好吧,看看
random.shuffle
的实现。在一个名为random.py
的文件中找到它,它是一个纯python实现,非常简单——只使用赋值循环(使用元组解包)。在相关问题 更多 >
编程相关推荐