如何确定列表中的项目是否以某个字符开头? (蟒蛇)

时间:2016-03-03 20:18:23

标签: python list

我试图遍历python中的列表,并确定列表中的任何项目是否以字符"a"开头。但是,我的代码似乎只检查列表中的第一项,并且不会迭代其余项。

def isA(myList):
for i in range(len(myList)):
    if myList[i][0] == "a":
        print "True"
        return True
    else:
        print "False"
        return False

例如isA(["acorn", "baseball"])将返回True,但isA(["baseball", "acorn"]会返回False,因为列表中的某个项目开始时会返回Truea

2 个答案:

答案 0 :(得分:5)

return块中有ifreturn块中有else。因此,无论条件如何评估,您绝对会遇到return并且函数将立即终止,迭代次数不超过一次。

如果您想检查任何项目是否以“a”开头,请在找不到以“a”开头的项目后立即返回。将return移动到函数的末尾。

def isA(myList):
    for i in range(len(myList)):
        if myList[i][0] == "a":
            return True
    return False

或者,跳过完全编写函数并使用内置函数any

>>> any(s.startswith("a") for s in ["baseball", "acorn"])
True

答案 1 :(得分:1)

只需使用any()功能:

def isA(mylist):
    if any(l.startswith("a") for l in mylist):
        print "True"
        return True
    else:
        print "False"
        return False
相关问题