Python 3.x 在列表中查找变量

Python 3.x 在列表中查找变量,python-3.x,Python 3.x,我正在查找搜索列表时的错误检查,在加载和卸载时遇到问题。我正在寻找一种方法,让脚本返回失败的变量 thisList = ['tacos', 'beer', 'cheese'] try: x = thisList.index('beer') y = thisList.index('eggs') except ValueError as e: DO AWESOME 在这一点上,我想挑出y。 提前谢谢。据我所知,这是不可能使用单个尝试/除了 相反,您可以对每个有问题的行使用

我正在查找搜索列表时的错误检查,在加载和卸载时遇到问题。我正在寻找一种方法,让脚本返回失败的变量

thisList = ['tacos', 'beer', 'cheese']

try:
    x = thisList.index('beer')
    y = thisList.index('eggs')
except ValueError as e:
    DO AWESOME
在这一点上,我想挑出y。
提前谢谢。

据我所知,这是不可能使用单个
尝试/除了

相反,您可以对每个有问题的行使用一个
try/except

try:
    x = thisList.index('beer')
except ValueError as e:
    print("x not found")
try:
    y = thisList.index('eggs')
except ValueError as e:
    print("y not found")
。。。或者为自己编写一个helper函数,比如字符串的
find
,它不会引发异常,而是返回一些特殊的sentinel值,您可以在以后进行检查

def find(l, e):
    try:
        return l.index(e)
    except ValueError:
        return -1

x = find(thisList, 'beer') # x is  1
y = find(thisList, 'eggs') # y is -1

你试过什么,到底有什么问题?错误消息将包括未找到的字符串(尽管不是指定给它的名称,因为可能有多个名称)。如果您想知道哪个失败了,为什么要将它们都放在同一个
try
?您可以使用两个独立的
try/except
块,或者编写一个助手方法,如
find
用于字符串,在“未找到”的情况下返回
-1
None
然后检查
x
y
的结果,最后一段代码正是我想要的。谢谢