我有这个数据
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
有人可以帮忙吗?
答案 0 :(得分:0)
嗯,你真的需要它是一个列表理解吗? 如果你更明确地写下这个问题,我认为这个问题会更明显:
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,但更清楚地说明这里发生了什么。
如果您将其转换为列表理解,请记住您需要反向顺序或循环声明(请参阅上面的注释)。