指定した値がリストにあるか判定してindexを返す
下記のような形式で、リストの中に"awk"の文字列が存在するかどうかを判定します。
参考:Pythonでリスト(配列)を初期化する方法:入門編
list = ["awk", "find", "grep"]
if "awk" in list:
print("Yes")
else:
print("No")
そして、下記の形式でリストのindexを取得できます。
list.index(str)
組み合わせて、下記のように書けます。
str = "find"
if str in list:
print(list.index(str))
else:
print("No")
if文と組み合わせた方がよい理由は、もしリストに指定した値が存在せずにindexを取得しようとした場合には、下記のようにErrorとなるからです。
if文で指定した値が存在する場合にのみ、indexを取得するようにすると、Errorを回避できます。
Traceback (most recent call last):
File "./sample.py", line 13, in <module>
print(list.index("sed"))
ValueError: 'sed' is not in list
サンプルコード
下記がサンプルコードになります。
$ cat sample.py
#!/usr/bin/env python3
# coding: UTF-8
#リストの初期化
list = ["awk", "find", "grep"]
if "awk" in list:
print("Yes")
else:
print("No")
#print(list.index("sed"))
str = "find"
if str in list:
print(list.index(str))
else:
print("No")
下記が実行結果になります。
$ ./sample.py Yes 1
