ホームページ >バックエンド開発 >Python チュートリアル >Python の `random.shuffle()` がシャッフルされたリストではなく `None` を返すのはなぜですか?

Python の `random.shuffle()` がシャッフルされたリストではなく `None` を返すのはなぜですか?

DDD
DDDオリジナル
2024-12-07 15:49:16190ブラウズ

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

オブジェクトのリストをシャッフルする

プログラミングにおける一般的なタスクは、オブジェクトのリストをシャッフルすることです。 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。