【问题标题】:Can I persist any of the variables within a Python any() statement?我可以在 Python any() 语句中保留任何变量吗?
【发布时间】:2014-03-14 14:35:31
【问题描述】:

给定以下 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”变量,并且无法在此站点上找到任何密切相关的内容。这甚至可能吗?

【问题讨论】:

    标签: python variables if-statement any


    【解决方案1】:

    我会这样写:

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

    【讨论】:

      【解决方案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!
      

      【讨论】:

      • 这个可以改成if predRange:吗?
      猜你喜欢
      • 2020-11-24
      • 1970-01-01
      • 2014-05-23
      • 2014-12-27
      • 2022-07-12
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多