由前面《python判断字符串中是否包含子字符串str(这个很重要,经常被问到,会经常使用)index() find()》()这篇文章可以引申出一个很重要的问题:

python的list如何在 不报异常的情况下给出某个元素的index呢?即当list中没有某个元素的时候,返回-1,而不是报异常。

我目前总结了3中方法:

1、使用enumerate方法:

a = ['1', '2', '3']
b = input()
idx = [idx0 for idx0, x in enumerate(a) if x == b]

如果a中没有b这个元素,那么返回的是一个空的list

2、使用try...except...和index()函数

既然已经知道index()只有在元素不存在与list的时候报错,所以可以在except中返回-1。

a = ['1', '2', '3']
b = input()
try:
cc = a.index(b)
except:
cc = -1

3、将要index()的子字符串添加到源字符串里面

a = ['1', '2', '3']
b = input()
a += b
if a.index(b) == len(a): # 例如这里b='4',那么,a.index('4') == 3
cc = -1
else:
cc = a.index(b)