在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
是的,我指的是文字。 –