2011-03-06 61 views
4

我以前从未有过这个问题,但是当我尝试和洗牌的清单,我得到“没有”不能得到结果的形式random.shuffle在python

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

打印语句返回“无”的回归我不知道为什么,我已经四处寻找这个问题的答案,但似乎有任何东西。我希望我不会犯一个明显的错误。

+0

[为什么random.shuffle返回无可能的重复? ](https://stackoverflow.com/questions/17649875/why-does-random-shuffle-return-none) – 2017-07-23 07:30:23

回答

10

random.shuffle功能排序就地名单,并避免在这一点上造成混乱,它不返回洗牌后的列表。尽量只:

random.shuffle(c) 
print(c) 

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

3

记得在-地方random.shuffle()洗牌。所以它更新名为“c”的对象。但你重新绑定“C”与None,该函数的输出,并且列表丢失。

1

doc

洗牌序列x到位。

所以预期

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

作品。

0

尝试这样

进口随机 C = [1,4,67,3] random.shuffle(C) 打印Ç