给出以下if语句:
if any(predicate(y) for y in range(0,len(myList))):
我试图保留'y'变量用于后续操作,如下所示:
if any(predicate(y) for y in range(0,len(myList))):
#DO STUFF WITH myList[y]
不幸的是,这会导致以下错误:
NameError: global name 'y' is not defined
没有尝试使用多个嵌套循环复制any()功能,我想不出一种方法来保持'y'变量并且无法找到与此站点密切相关的任何内容。这甚至可能吗?
答案 0 :(得分:4)
我这样写:
for y, myItem in enumerate(myList):
if predicate(y):
#DO STUFF WITH myList[y]
break
答案 1 :(得分:2)
如果要保留项目,请使用略有不同的逻辑:
predRange = [x for x in range(0,len(myList)) if predicate(x)]
if len(predRange) > 0:
#hey look, it's already persisted in predRange!