Categories: Python

【Python】リスト内の文字列の文字数が最大・最小の要素を取得する

この記事では、Pythonでリストに格納されている文字列の中で文字数が最大・最小の要素を取得する方法を解説します。

並び替えで取得する方法

リストを要素の長さで並び替えることで文字数が最大、または最小の要素が両端に配置されます。あとはlist[0]で最初、list[-1]で最後の要素を取得します。

li = ['abc', 'abcd', 'a', 'abcde']

# 要素の長さでソート
sorted_li = sorted(li ,key=lambda s:len(s))

print(f'最短: {sorted_li[0]}、最長: {sorted_li[-1]}')
# 最短: a、最長: abcde

Linksorted - 組み込み関数 — Python 3.11.5 ドキュメント

min()/max()を使う方法

min()max()key引数にlen()を指定することで要素の長さで大きさを判定してくれるようになります。

li = ['abc', 'abcd', 'a', 'abcde']

print(min(li, key=len))  # a
print(max(li, key=len))  # abcde

Linkmax -- 組み込み関数 — Python 3.11.5 ドキュメント

同じ長さの要素がある場合

同じ長さの要素が複数格納されている場合、並び替えを使った方法では初期の要素の位置が重要になってくる。移動する方向に近い要素ほど端に配置される。

li = ['zzzzz', 'abc', 'abcd', 'a', 'abcde', 'z']
sorted_li = sorted(li ,key=lambda s:len(s))

print(sorted_li)
# ['a', 'z', 'abc', 'abcd', 'zzzzz', 'abcde']

min()max()では単純に先に見つけた要素が優先される。

li = ['zzzzz', 'abc', 'abcd', 'a', 'abcde', 'z']

print(min(li, key=len))  # a
print(max(li, key=len))  # zzzzz
ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

Recent Posts

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

7か月 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

7か月 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

7か月 ago

【Unity】割合から数値に数値から割合に変換する

この記事では、割合から数値に変換する関数…

7か月 ago

【Python】抽象クラスを定義する方法

この記事では、Pythonで抽象クラスを…

7か月 ago