【发布时间】:2012-08-09 01:04:04
【问题描述】:
当我今晚写了一点代码时,我遇到了一个问题,尽管它并没有阻止我,但由于我无法解决而引起了我的注意。所以这是我写的一个函数(不应该是最好的方法,但没关系......)
def ownShuffle( origin ):
export = [[] for i in range( len( origin ) ) ]
indices = range( len( origin ) )
for n, item in enumerate( origin ):
i = random.randrange( len( indices ) )
export[indices[i]] = item
indices.remove(indices[i])
return export
现在有一个这样的测试样本:
c = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
有问题的部分。我使用几乎相同的代码得到不同的结果。 如果是这样写的:
for i, line in enumerate(c):
c[i] = ownShuffle(line)
print c
>>> [[3, 2, 1],
[6, 4, 5],
[7, 8, 9]]
我得到了一个随机列表。但是使用以下代码:
for i, line in enumerate(c):
line = ownShuffle(line)
print c
>>> [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
我没有改变测试样本。也许它来自我写的函数?我不知道...
所以我的问题是:有人知道为什么吗?
谢谢你:)
【问题讨论】:
标签: python list python-2.7