无法从python中的random.shuffle获取结果

时间:2011-03-06 09:43:15

标签: python

我以前从来没有遇到过这个问题,但是当我尝试洗牌时,我得到一个'无'的回报

import random
c=[1,4,67,3]
c=random.shuffle(c)
print c

print语句返回'None'并且我不知道为什么,我已经四处寻找这个问题的答案,但似乎没有任何东西。我希望我没有犯明显的错误。

4 个答案:

答案 0 :(得分:10)

random.shuffle函数就地对列表进行排序,为避免在该点上造成混淆,它不会返回混洗列表。试试吧:

 random.shuffle(c)
 print(c)

这是一个很好的API设计,我认为 - 这意味着如果你误解了random.shuffle正在做什么,那么你会立即得到一个明显的问题,而不是一个难以跟踪的更微妙的错误后来...... ...

答案 1 :(得分:3)

请记住,random.shuffle()就地进行了随机播放。所以它更新了名为“c”的对象。但是你用None重新绑定“c”,函数的输出,列表就丢失了。

答案 2 :(得分:1)

来自doc

  

将序列x随机移动。

所以

import random
c=[1,4,67,3]
random.shuffle(c)
print c

按预期工作。

答案 3 :(得分:0)

试试这个

随机导入 C = [1,4,67,3] random.shuffle(c)中 打印c