首頁 > 後端開發 > Python教學 > 為什麼 Python 的 random.shuffle() 傳回 None 而不是打亂後的清單?

為什麼 Python 的 random.shuffle() 傳回 None 而不是打亂後的清單?

DDD
發布: 2024-12-07 15:49:16
原創
186 人瀏覽過

Why does Python's `random.shuffle()` return `None` instead of the shuffled list?

打亂物件清單

程式設計中常見的任務是打亂物件清單。在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板