list.sort()
リストをソートして元のリストを置き換えますが、 はsorted(list)
元のリストを変更せずに、ソートされたリストのコピーを返します。
- どちらが優先されるのでしょうか?
- どちらがより効率的でしょうか? どの程度でしょうか?
list.sort()
実行後にリストを未ソートの状態に戻すことはできますか?
使ってくださいこれらのリスト操作 (メソッド) が結果のリストではなく None を返すのはなぜですか?質問を閉じるには、 または別のステートメントを.sort()
使用するのではなく、の結果を誤って割り当てます。適切なデバッグを行うと、 がを返したことが明らかになりますが、その時点で「なぜ?」が残る質問です。sorted
.sort()
None
ベストアンサー1
sorted()
元のリストに影響を与えずに、新しいソートされたリストを返します。list.sort()
リストをインプレースでソートし、リストのインデックスを変更して、戻りますNone
(すべてのインプレース操作と同様に)。
sorted()
リストだけでなく、任意の反復可能オブジェクトで動作します。文字列、タプル、辞書 (キーを取得します)、ジェネレーターなど、すべての要素を含むソートされたリストを返します。
list.sort()
リストを変更する場合、sorted()
新しいソートされたオブジェクトを戻したい場合に使用します。まだsorted()
リストではなく、反復可能なものをソートする場合に使用します。リストの場合、コピーを作成する必要がないため、
list.sort()
よりも高速です。その他の反復可能オブジェクトの場合、選択の余地はありません。sorted()
いいえ、元のポジションを取得することはできません。一度呼び出すと、
list.sort()
元の注文は消えてしまいます。