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

如何确定列表中的项目是否以某个字符开头?(Python),python,list,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”

我试图在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”,“basketball”])
将返回
True
,但
isA([“basketball”,“acorn”]
返回
False
,当它应该返回
True
时,因为列表中有一个项目以
a
开头,在
if
块中有一个
返回
,在
else
块中有一个
返回
。因此,无论条件如何计算,您都绝对会遇到
返回rn
函数将立即终止,迭代次数不超过一次

如果要检查是否有任何项目以“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

您在
if
块中有一个
return
,在
else
块中有一个
return
。因此,无论条件如何计算,您都将绝对命中一个
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
只需使用
any()
函数:

def isA(mylist):
    if any(l.startswith("a") for l in mylist):
        print "True"
        return True
    else:
        print "False"
        return False
只需使用
any()
函数:

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

在浏览完整个列表之前不要返回False。
返回any(对于myList中的ele,ele[0]==“a”)
,这要短得多,并且由于正确的原因短路;)在浏览完整个列表之前不要返回False。
返回any(对于myList中的ele,ele[0]==“a”)
,这要短得多,而且短路的原因是正确的;)