打亂物件清單
程式設計中常見的任務是打亂物件清單。在 Python 中,有一個內建函數可以實現此目的:random.shuffle()。但是,如果您不熟悉其細微差別,它的行為可能會出乎意料。
問題
為什麼在列表上調用 random.shuffle() 時對象,返回 None 而不是打亂的列表?
答案
random.shuffle() 就地修改其輸入列表,這意味著它不會創建新列表,而是對現有列表的元素進行打亂列表。因此,它沒有任何返回值,因此結果為 None。此行為與 Python 的可變物件約定一致,其中修改它們的函數通常會傳回 None。
範例
要示範這一點,請考慮以下程式碼:
from random import shuffle l = [[i] for i in range(10)] shuffle(l) print(l)
程式碼建立一個清單清單並使用shuffle() 對其進行洗牌。列印結果列表顯示它已成功重新排列:
[[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
在此範例中,random.shuffle() 確實修改了原始列表,傳回 None。
以上是為什麼 Python 的 random.shuffle() 傳回 None 而不是打亂後的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!