查找并返回列表中位置索引处的值

时间:2016-11-10 21:23:51

标签: list python-3.x return location

我当前的代码可以用于此功能吗?这是我首先尝试做的目标,然后是我目前的尝试

查看值列表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

感谢任何帮助表示赞赏

2 个答案:

答案 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-exceptexcept;你应该在这里指定可以引用的例外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