我当前的代码可以用于此功能吗?这是我首先尝试做的目标,然后是我目前的尝试
查看值列表xs。查找并返回位置索引处的值。当索引对xs无效时,请返回响应。
当前代码:
def get(xs, index, response=None):
xs=[]
i=0
for i in xs:
try:
while i<len(xs):
index=xs.index(xs,index)
index = i
return i
except:
return response
感谢任何帮助表示赞赏
答案 0 :(得分:1)
你似乎对你要做的事情感到非常困惑......
因此,如果我理解正确你想要返回xs[index]
,如果它存在response
,那么遵循EAFP原则的一个简单方法就是:
def get(xs, index, response=None):
try:
return xs[index]
except IndexError:
return response
答案 1 :(得分:1)
这里有很多问题,让我们按细分细分:
您重新指定传递的列表名称,从而有效地丢失了您要搜索的列表:
xs=[]
没有必要这样做,可以删除该行。
您为i
指定了一个值(让人联想到C
),当循环开始时会被覆盖,当您不需要时使用for-loop
:
i=0
for i in xs:
再次,这也可以删除。
您使用try-except
裸except
;你应该在这里指定可以引用的例外ValueError
。
try:
# content
except ValueError:
return response
您正在使用while
循环获取index
(并指定start
),重新分配,然后将其返回;它没有多大意义。你真的在寻找return xs.index(index)
。
同样,您可以使用xs.index(index)
总而言之,您的功能可能如下所示:
def get(xs, index, response=None):
try:
return xs.index(index)
except ValueError:
return response