2017-03-29 18 views
0

我已經洗牌清單,並將其分配給另一個變量,當我試圖打印它時,它將輸出爲None?哪裏不對 ?洗牌後,我得到一個None對象。哪裏不對?

list1 = [1,2,3,4,5,6] 
list2 = shuffle(list1) 
print list2 
+0

是什麼'shuffle'返回?看起來像「沒有」。隨機更改列表,因此在調用'shuffle'後打印'list1'。 https://docs.python.org/3/library/random.html#random.shuffle – erikvw

回答

0

random.shuffle()函數被設計用於列表並洗牌其內容。它不返回混洗列表。該文檔指出:

將序列x隨機排序。

因此,如果您嘗試將返回分配給變量,您將得到None

您可以執行以下操作來代替:

list1 = [1,2,3,4,5,6] 
shuffle(list1) 
print list1 

如果你想保留原始列表順序:

list1 = [1,2,3,4,5,6] 
list2 = list1[::] # make a copy 
shuffle(list2) 
print list2 
-1

隨機播放()函數不是直接訪問的,所以我們需要導入洗牌模塊,然後我們需要使用隨機靜態對象調用這個函數。

#!/usr/bin/python 

import random` 
list = [1, 2, 3, 4, 5]; 
random.shuffle(list) 
print "list : ", list