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

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

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

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

1年 ago

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

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

1年 ago

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

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

1年 ago