如何用Python找到any()中匹配的内容?

我正在使用Python,使用any()这样寻找String []数组和从Reddit的API中提取的注释之间的匹配.

目前,我这样做:

isMatch = any(string in comment.body for string in myStringArray)  

但是,不仅知道isMatch是否为真,而且myStringArray的哪个元素具有匹配性也是有用的.有没有办法用我目前的方法做到这一点,还是我必须找到一种不同的方式来搜索匹配?

最佳答案
您可以在条件生成器表达式上使用next,默认值= False:

next((string for string in myStringArray if string in comment.body), default=False)

当没有匹配的项时返回默认值(因此它类似于任何返回的False),否则返回第一个匹配项.

这大致相当于:

isMatch = False  # variable to store the result
for string in myStringArray:
    if string in comment.body:
        isMatch = string
        break  # after the first occurrence stop the for-loop.

或者如果你想在不同的变量中使用isMatch和whatMatched:

isMatch = False  # variable to store the any result
whatMatched = '' # variable to store the first match
for string in myStringArray:
    if string in comment.body:
        isMatch = True
        whatMatched = string
        break  # after the first occurrence stop the for-loop.

转载注明原文:如何用Python找到any()中匹配的内容? - 代码日志