🔖

【初心者向け】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