2011-03-06 25 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) 打印Ç