ホームページ >バックエンド開発 >Python チュートリアル >オブジェクトをシャッフルすると、Python の「random.shuffle」が「None」を返すのはなぜですか?
オブジェクトのリストをシャッフルする
Python でrandom.shuffle関数を使用してオブジェクトのリストをシャッフルしようとすると、次のような問題が発生する可能性があります。 None 出力を受け取る問題。整数のリストとは異なり、オブジェクトのシャッフルにはもう少し考慮する必要があります。
random.shuffle について
random.shuffle は、その場で変更可能なオブジェクトに対して動作します。つまり、オリジナルリスト。この関数はシャッフルされたリストを返すのではなく、入力リストを変更します。その結果、実際の値が返されていないことを示す None が返されます。
解決策
この問題を解決するには、入力リストに変更可能なオブジェクトが含まれていることを確認してください。リストなど。以下に例を示します。
from random import shuffle # Create a list of lists as objects x = [[i] for i in range(10)] # Shuffle the list of objects in place shuffle(x) # Print the shuffled list print(x)
出力:
[[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
リストをオブジェクトとして使用することで、random.shuffle は元のリストを効果的に変更し、目的のシャッフルされた出力を提供できます。可変オブジェクトを扱う場合、オブジェクトを適切に変更した後、関数が None を返すのが一般的であることに注意してください。
以上がオブジェクトをシャッフルすると、Python の「random.shuffle」が「None」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。