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

Anx*_*non 1 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
Run Code Online (Sandbox Code Playgroud)

例如,当它应该返回时isA(["acorn", "baseball"])返回True,但isA(["baseball", "acorn"]返回False,True因为列表中有一个项目以a.

Kev*_*vin 5

你有一个returnif块和returnelse块.因此,无论条件如何评估,您绝对会命中一个return并且函数将立即终止,迭代次数不超过一次.

如果要检查是否有任何项目以"a"开头,请不要在找到不以"a"开头的项目时立即返回.将其移动return到函数的末尾.

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

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

>>> any(s.startswith("a") for s in ["baseball", "acorn"])
True
Run Code Online (Sandbox Code Playgroud)