Pythonで特定の文字で始まるリスト要素を検索する方法
この記事では、Pythonのリストから「特定の文字で始まる要素」だけを抽出する方法を、2つの異なるアプローチで解説します。
方法1:インデックスとlower()を組み合わせる
まず紹介するのは、lower()関数とインデックス([0])を組み合わせる方法です。lower()を使うことで、大文字・小文字を区別せずに比較できるのがポイントです。リスト内包表記の中で各要素の先頭文字(インデックス0)を取り出し、テスト用の文字と照合します。
サンプルコード
listA = ['Mon', 'Tue', 'Wed', 'Thu']
# 比較に使う文字
test = 'T'
# 元のリストを表示
print("Given list\n " ,listA)
# lower()とインデックスを使用
res = [idx for idx in listA if idx[0].lower() == test.lower()]
# 結果を表示
print("List elements starting with matching letter:\n " ,res)
実行結果
上記のコードを実行すると、次のような出力が得られます。
Given list ['Mon', 'Tue', 'Wed', 'Thu'] List elements starting with matching letter: ['Tue', 'Thu']
この例では、「T」で始まる Tue と Thu の2つの要素が正しく抽出されています。小文字の「t」で検索した場合でも同じ結果になるため、大文字・小文字を気にせずに検索したい場面で便利です。
方法2:startswith()を使う
次に紹介するのは、文字列メソッドのstartswith()を使った、より直感的なアプローチです。この関数は、要素が指定した文字で始まる場合にTrueを返し、そうでない場合はFalseを返します。条件式が読みやすく、コードの意図が伝わりやすいのがメリットです。
サンプルコード
listA = ['Mon', 'Tue', 'Wed', 'Thu']
# 比較に使う文字
test = 'T'
# 元のリストを表示
print("Given list\n " ,listA)
# startswith()を使用
res = [idx for idx in listA if idx.lower().startswith(test.lower())]
# 結果を表示
print("List elements starting with matching letter:\n " ,res)
実行結果
上記のコードを実行すると、次のような出力が得られます。
Given list ['Mon', 'Tue', 'Wed', 'Thu'] List elements starting with matching letter: ['Tue', 'Thu']
ここでも同じように、「T」で始まる要素だけが新しいリストとして取得できています。idx.lower().startswith(test.lower())のように、両辺をlower()で小文字にそろえることで、大文字・小文字を問わずマッチングできます。
まとめ
| 方法 | 特徴 |
|---|---|
| インデックス + lower() | 先頭1文字だけを直接比較するシンプルな手法 |
| startswith() | 可読性が高く、複数文字での前方一致にも拡張しやすい |
どちらの方法もリスト内包表記と組み合わせることで簡潔に書けます。先頭1文字のみの判定なら前者、将来的に「特定の文字列で始まるか」へ拡張する可能性があるならstartswith()を使うのがおすすめです。
-
Pythonで別のリストをインデックスにしてリストの要素を取得する3つの方法
Pythonでは、あるリストの要素を、別のリストに格納された数値(インデックス位置)に基づいて取り出したい場面がよくあります。例えば、曜日名が入ったリストから、指定された位置の要素だけを抜き出すようなケースです。本記事では、この処理を実現する3つの方法を、具体的なコード例とともに解説します。 mapと__getitem__を組み合わせる方法 リストには特殊メソッド(マジックメソッド)である__getitem__が用意されており、これを使うとリストの要素へアクセスできます。このメソッドをmap関数と組み合わせることで、2つ目のリストの各要素をインデックスとして扱い、1つ目のリストから対応する要
-
【初心者向け】Pythonでリストのサイズ(要素数)を取得する方法
リスト(list)は、Pythonにおける代表的なコレクション型のデータ構造の一つです。リストの要素は後から変更でき、重複した値を持つこともできます。本記事では、Pythonでリストのサイズ(長さ)を取得する方法を解説します。具体的には、重複の有無にかかわらず、リストに含まれる全要素の数をカウントする方法を紹介します。リストの長さを取得する基本:len()関数Pythonでリストの要素数を取得するには、組み込み関数の len() を使用します。len() はリストだけでなく、タプル・文字列・辞書などさまざまなコレクションに対しても利用できる汎用的な関数です。サンプルコード以下の例では、「day