我正在尝试遍历 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,而它应该返回 True 因为列表中有一个以 a 开头的项目。
请您参考如下方法:
if block 中有一个return,else block 中有一个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
