无法从 Python 的 random.shuffle 中得到结果
我之前从来没有遇到过这个问题,但当我尝试打乱一个列表时,返回的却是'None'。
import random
c=[1,4,67,3]
c=random.shuffle(c)
print c
打印出来的结果是'None',我不知道为什么。我到处找过这个问题的答案,但似乎没有找到任何信息。我希望我不是在犯明显的错误。
4 个回答
1
3
记住,random.shuffle()
是直接在原来的列表上进行打乱的。所以它会更新名为“c”的这个对象。但是接着你把“c”重新赋值为 None
,也就是函数的返回值,这样原来的列表就没了。
10
random.shuffle
这个函数会直接在原来的列表上进行排序,也就是说它不会返回一个新的打乱后的列表,这样可以避免让人困惑。你可以直接试试:
random.shuffle(c)
print(c)
我觉得这是一个很不错的设计方式——这意味着如果你误解了random.shuffle
的功能,你会立刻遇到明显的问题,而不是后面出现一个难以发现的小错误...