Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストをソートする方法をわかりやすく解説

Pythonのsortメソッドを使ったリストの並べ替え

Pythonでは、リストに対してsort()メソッドを呼び出すことで、要素を昇順に並べ替えることができます。内部的には、各クラスが持つ比較演算子(__gt____lt__)が使われており、文字列や数値などの組み込み型はあらかじめこれらが実装されているため、特別な設定なしに自動的にソートされた結果を得られます。

実際の使用例を見てみましょう。

words = ["Hello", "World", "Foo", "Bar", "Nope"]
numbers = [100, 12, 52, 354, 25]
words.sort()
numbers.sort()

print(words)
print(numbers)

このコードを実行すると、次のような出力が得られます。

['Bar', 'Foo', 'Hello', 'Nope', 'World']
[12, 25, 52, 100, 354]

文字列はアルファベット順、数値は小さい順に並んでいることが確認できます。

元のリストを保持したい場合はsorted関数を使う

sort()メソッドは元のリスト自体を書き換える「破壊的」な操作です。そのため、元の順序を保ったまま新しいソート済みリストを作りたい場合には、組み込み関数のsorted()を使用します。

words = ["Hello", "World", "Foo", "Bar", "Nope"]
sorted_words = sorted(words)

print(words)
print(sorted_words)

実行結果は以下のとおりです。

["Hello", "World", "Foo", "Bar", "Nope"]
['Bar', 'Foo', 'Hello', 'Nope', 'World']

このように、sorted()を使えば元のリストwordsは変更されず、ソート結果だけが新しいリストとして返されます。

使い分けのポイント

  • sort()メソッド:元のリストを直接並べ替えたいときに使う。メモリ効率が良い。
  • sorted()関数:元のデータを残しつつ、ソート済みの新しいリストが必要なときに使う。

どちらもデフォルトでは昇順にソートされますが、引数にreverse=Trueを指定すれば降順にすることも可能です。状況に応じて適切な方を選択しましょう。

  1. Pythonで文字列を単語のリストに変換する方法

    文字列を単語のリストに変換したい場合は、空白文字を基準に文字列を分割するだけで実現できます。最もシンプルな方法は、文字列クラスが標準で提供している split() メソッドを使うことです。このメソッドのデフォルトの区切り文字は空白であり、文字列に対して呼び出すと、空白文字の位置で自動的に分割してくれます。split()メソッドを使う方法引数を指定せずに split() を呼び出すだけで、連続する空白もまとめて処理され、単語ごとのリストが返されます。コード例>>> Please split this string.split() [Please, split, this, st

  2. Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け

    Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>