【问题标题】:order of items in the for loopfor循环中的项目顺序
【发布时间】:2016-04-15 11:33:05
【问题描述】:

我有这个数据

  1.  def lem(str):
    return synsets for every str

  2. list_terms = list of terms
  3. list_st = list of strings as input for the function

这里需要在术语列表中找到任何字符串作为函数的输出。我的问题是下面代码中项目的顺序

if any(i in list_terms for i in lem(item) for item in list_st):
    do somethind

此代码给出错误

NameError: name 'item' is not defined

有人可以帮忙吗?

【问题讨论】:

  • 您是否尝试切换 for 循环?喜欢...for item in list_st for i in lem(item)

标签: python python-2.7 python-3.x


【解决方案1】:

嗯,你真的需要它是这里的列表理解吗? 如果您更明确地写下来,我认为问题会更清晰可见:

terms = []
for item in list_st:
    for i in lem(item):
        if i in list_terms:
            terms.append(i)
if terms:
     do_something

这有点难看,因为它遵循Arrow Anti Pattern,但更清楚地说明了这里发生了什么。

如果您将其转换为列表推导式,请记住您需要反转顺序或循环声明(参见上面的注释)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 2010-09-21
    • 2016-11-27
    • 1970-01-01
    相关资源
    最近更新 更多