本記事ではリストの文字数に応じてソートする方法を解説します.
- ソート前:
['ほたて', 'くるまえび', 'かに']
- ソート後:
['かに', 'ほたて', 'くるまえび']
事前準備
まずはサンプルとなるリストを作成します.
sample = ['ほたて', 'くるまえび', 'かに']
print(sample)
['ほたて', 'くるまえび', 'かに']
文字数でソート(文字数が少ない順)
リストの中の要素を文字数でソートするにはPythonの組み込み関数sorted()
を使用します.
sample_s = sorted(sample, key=len)
print(sample_s)
['かに', 'ほたて', 'くるまえび']
解説
sorted()
の引数は以下のとおりです.
- 第一引数:ソートしたいリストを指定します.
- 第二引数:
key
にはソートで使用する関数を指定することができます.
key=len
1を指定することでリスト要素の文字数を基準にソートすることができます.
文字数でソート(文字数が多い順)
文字数が多い順にソートするにはsorted()
の引数にreverse=True
を指定します.
sample_s2 = sorted(sample, key=len, reverse=True)
print(sample_s2)
['くるまえび', 'ほたて', 'かに']
文字数が多い順にソートされましたね.
なお,引数reverse
のデフォルトはFalse
なので,指定しない場合は文字数が少ない順になります.
ひとこと
組み込み関数のsorted()
は引数のkey
に関数を指定することができるので,他にも色々と応用ができそうです.
-
len
とはPythonの組み込み関数len()
のことです.len()
はリストの要素数や文字数などをカウントできる関数です.なおkey
を使って指定する際はカッコなしでkey=len
とします. ↩