【Python】リスト内の文字数でソートする方法

本記事ではリストの文字数に応じてソートする方法を解説します.

  • ソート前:['ほたて', 'くるまえび', 'かに']
  • ソート後:['かに', 'ほたて', 'くるまえび']

事前準備

まずはサンプルとなるリストを作成します.


sample = ['ほたて', 'くるまえび', 'かに']
print(sample)
['ほたて', 'くるまえび', 'かに']

文字数でソート(文字数が少ない順)

リストの中の要素を文字数でソートするにはPythonの組み込み関数sorted()を使用します.


sample_s = sorted(sample, key=len)
print(sample_s)
['かに', 'ほたて', 'くるまえび']

解説

sorted()の引数は以下のとおりです.

  • 第一引数:ソートしたいリストを指定します.
  • 第二引数:keyにはソートで使用する関数を指定することができます.
    key=len1を指定することでリスト要素の文字数を基準にソートすることができます.

文字数でソート(文字数が多い順)

文字数が多い順にソートするにはsorted()の引数にreverse=Trueを指定します.


sample_s2 = sorted(sample, key=len, reverse=True)
print(sample_s2)
['くるまえび', 'ほたて', 'かに']

文字数が多い順にソートされましたね.
なお,引数reverseのデフォルトはFalseなので,指定しない場合は文字数が少ない順になります.

ひとこと

組み込み関数のsorted()は引数のkeyに関数を指定することができるので,他にも色々と応用ができそうです.


  1. lenとはPythonの組み込み関数len()のことです.len()はリストの要素数や文字数などをカウントできる関数です.なお keyを使って指定する際はカッコなしでkey=lenとします.