在Python中,每当我试图用.sort()
或random.shuffle()
名单上像这样的:让foo.sort()等方法返回
a = [1, 3, 2].sort()
b = random.shuffle([1, 3, 2])
的a
和b
将None
因为这两种方法返回None
。
当然,我知道.sort()
有sorted()
函数。但是,random.shuffle()
没有。因此,对于这个解决方法是要做到:
a = [1, 3, 2]
random.shuffle(a)
b = a
b = sorted([1, 3, 2], key=lambda k: random.random())
是否有存储文字一般和优雅的方式,通过返回None
,到一个变量的方法编辑?
为什么不直接编写自己的'shuffled'来复制,洗牌并返回一个可迭代的参数?这些方法就地改变了他们的论点,所以你已经有了对结果的参考; *这是你传入的同一个对象*。 'b = a'可以在同一个结果之前或之后发生 - 它只是一个参考,**不是**副本。 – jonrsharpe
我编辑了*“直接”*,因为它不清楚你的意思 - 你指的是*文字*? – jonrsharpe
是的,我指的是文字。 –