2017-03-29 30 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