我以前从未遇到过这个问题,但当我尝试对列表进行洗牌时,返回了“None”。
import random
c=[1,4,67,3]
c=random.shuffle(c)
print c
打印语句返回“None”,我不知道为什么,我已经寻找了答案解决这个问题,但貌似没有合适的答案。希望我没有犯什么低级错误。
我以前从未遇到过这个问题,但当我尝试对列表进行洗牌时,返回了“None”。
import random
c=[1,4,67,3]
c=random.shuffle(c)
print c
打印语句返回“None”,我不知道为什么,我已经寻找了答案解决这个问题,但貌似没有合适的答案。希望我没有犯什么低级错误。
random.shuffle
函数是原地排序列表的,为了避免引起混淆,它不会返回已洗牌的列表。只需尝试:
random.shuffle(c)
print(c)
我认为这是一个很好的API设计 - 这意味着如果你误解了random.shuffle
正在做的事情,那么你将立即遇到明显的问题,而不是一个更微妙的难以追踪的bug...
请记住,random.shuffle()
是就地打乱列表的。因此它会更新名为“c”的对象。但是当你用函数的输出None
重新绑定“c”时,列表就丢失了。
尝试这样做
import random c=[1,4,67,3] random.shuffle(c) print c