我在Python中必须引发ValueError吗
我有这段代码:
chars = #some list
try:
indx = chars.index(chars)
except ValueError:
#doSomething
else:
#doSomethingElse
我想这样做,因为我不喜欢故意引发异常:
chars = #some list
indx = chars.index(chars)
if indx == -1:
#doSomething
else:
#doSomethingElse
有没有什么办法可以做到这一点?
3 个回答
0
如果你的列表是由单个字符组成的字符串,你可以先把这个列表转换成一个字符串,比如用 ''.join(chars) 这个方法。
然后你可以使用 .find() 方法,这样就能达到你想要的效果。不过,列表或元组没有类似的方法。
另外一个选择是使用字典。比如:
d = dict((x, loc) for (loc,x) in enumerate(chars))
...
index = d.get(chars_to_find, -1) # Second argument is default if not found.
如果你需要在这个列表上进行很多次搜索,使用字典可能会更快。不过,如果只是对一个临时的列表进行一次搜索,那就没必要这样做了。
7
if element in mylist:
index = mylist.index(element)
# ... do something
else:
# ... do something else
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。
10
请注意,后面提到的方法与通常被接受的“Python风格”相悖,这种风格被称为EAFP,意思是“请求原谅比请求许可更容易”。而前面提到的方法则是遵循这种风格的。