Return any() 的值

Return value of any()

我对 Python 中 any 函数的返回值有疑问。

代码如下:

def check():
   for l in lines:
       ret = any(word in l for word in list)
       return ret

它只有 returns 个布尔值,但我需要与列表匹配的单词。

例如:

如果我有字符串 "In school they're eating for lunch a lot of unhealthy food" 和列表 ["lunch", "burger", "sushi"] 那么我需要 "lunch".

这个词

在Python 3.8中,赋值表达式可以用来捕获导致any到return[=12=的witness ].

for l in lines:
    if any((x:=word) in l for word in list):
        return x

如果anyreturnsTrue,是因为word的值(赋值给x)导致word in l是真实的。 xword 在不同的范围内绑定:word 在生成器表达式的范围内,x 在定义生成器表达式的范围内。