ホームページ >バックエンド開発 >Python チュートリアル >Python の `random.shuffle()` がシャッフルされたリストではなく `None` を返すのはなぜですか?
オブジェクトのリストをシャッフルする
プログラミングにおける一般的なタスクは、オブジェクトのリストをシャッフルすることです。 Python には、このための組み込み関数、random.shuffle() があります。ただし、そのニュアンスに慣れていないと、その動作は予期せぬものになる可能性があります。
質問
なぜ、random.shuffle() は、次のリストに対して呼び出されるのですか?オブジェクトの場合、シャッフルされる代わりに None を返しますlist?
Answer
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 中国語 Web サイトの他の関連記事を参照してください。