我可以在Python any()语句中保留任何变量吗?

我可以在Python any()语句中保留任何变量吗?,python,variables,if-statement,any,Python,Variables,If Statement,Any,给出以下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()功能外,我

给出以下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”变量,也找不到与此站点密切相关的任何内容。这是可能的吗?

如果您想持久化这些项目,您可以使用稍微不同的逻辑:

 predRange = [x for x in range(0,len(myList)) if predicate(x)]
 if len(predRange) > 0:
   #hey look, it's already persisted in predRange!

如果要持久化这些项,可以使用稍微不同的逻辑:

 predRange = [x for x in range(0,len(myList)) if predicate(x)]
 if len(predRange) > 0:
   #hey look, it's already persisted in predRange!
我会这样写:

for y, myItem in enumerate(myList):
    if predicate(y):
        #DO STUFF WITH myList[y]
        break
我会这样写:

for y, myItem in enumerate(myList):
    if predicate(y):
        #DO STUFF WITH myList[y]
        break

如果predRange:,是否可以改进为
?如果predRange:
,是否可以改进为