🔖
【初心者向け】Pythonの sort() と sorted() の違いを解説
はじめに
Pythonでリストを並び替えたいときに使われるのが、sort()
と sorted()
という2つの方法です。
どちらも並び替えができるため、最初は違いが分かりづらいかもしれません。
「どちらを使っても同じでは?」
と思ったことがある方も多いのではないでしょうか?
実はこの2つ、使い方や動作に大きな違いがあります。
本記事では、初心者の方向けに sort()
と sorted()
の違いと、それぞれの使い分けについて解説します。
sort()
は元のリストを直接変更する
sort()
は、リストのメソッドです。
実行すると、元のリスト自体が並び替えられ、その内容が書き換えられます。
numbers = [3, 1, 4, 2]
numbers.sort()
print(numbers) # [1, 2, 3, 4]
🔸 sort()
は 戻り値が None
であることに注意してください。
result = numbers.sort()
print(result) # None
sorted()
は新しいリストを返す
一方、sorted()
は 組み込み関数(Pythonに最初から用意されている関数) です。
元のリストを変更せず、新しい並び替え済みのリストを返します。
numbers = [3, 1, 4, 2]
sorted_numbers = sorted(numbers)
print(numbers) # [3, 1, 4, 2](元のリストはそのまま)
print(sorted_numbers) # [1, 2, 3, 4]
sort()
と sorted()
の比較
目的 | 使う関数 | 特徴 |
---|---|---|
元のリストを変更して並び替えたいとき | sort() |
リスト自体が書き換わる/戻り値は None
|
並び替えたリストを新しく作りたいとき | sorted() |
元のリストは変えず、新しいリストを返す |
おわりに
sort()
と sorted()
は、どちらもリストの並び替えに使われる基本的な手段ですが、
「元のリストを直接変更するか、新しいリストを作るか」 という点に注意することが大切です。
今後のプログラミングでは、「元のデータを残すべきかどうか」を判断する場面がよく出てきます。
今回のような違いを意識しておくことで、
状況に応じた適切な選択がしやすくなり、意図しない動作を減らすことにつながります。
本記事が参考になれば幸いです。
Discussion