【Python】リスト内の文字列を検索してインデックスを返す方法

完全一致でリストにある文字列を検索する方法です。

以下のようにワンラインで書くことができます。

thing_index = thing_list.index(elem) if elem in thing_list else -1

見つからなかったら-1を返すようにしています。

いくつか実例をテストしてみます。

thing_list = ['ben','car','apple','ben','car','dick']

elem = "apple"

thing_index = thing_list.index(elem) if elem in thing_list else -1

# 2
print(thing_index)

elem = "nothing"

thing_index = thing_list.index(elem) if elem in thing_list else -1

# -1
print(thing_index)


elem = "car"

thing_index = thing_list.index(elem) if elem in thing_list else -1

# 1
print(thing_index)

carのようにリスト内に重複している場合、最初のインデックスが返ってきます。

以下のサイトを参考にしています。

best-way-to-handle-list-indexmight-not-exist-in-python

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog