【发布时间】:2020-10-20 13:36:10
【问题描述】:
我有一个关于在 Python 中返回 any 函数的值的问题。
代码如下:
def check():
for l in lines:
ret = any(word in l for word in list)
return ret
它只返回一个布尔值,但我需要与列表匹配的单词。
例如:
如果我有字符串"In school they're eating for lunch a lot of unhealthy food" 和列表["lunch", "burger", "sushi"],那么我需要单词"lunch"。
【问题讨论】:
-
既然你没有指定 - 如果有多个匹配会发生什么?
-
不幸的是,您不能直接使用
any或all,这很可惜。 Clojure 具有相同的功能,但它们返回第一个/最后一个真值,这非常方便。 -
是故意只检查
lines中的第一行吗? -
对于每场比赛我都想知道它为什么匹配。如果字符串中有 5 次 "lunch",我想知道它匹配是因为午餐 5 次
-
@qonsycodes then
any无论如何都不是这项工作的工具,因为一旦找到第一个匹配项,它就会短路停止