列表中的差异名称和任何(列表中s的名称)

Tei*_*iem 3 python python-3.x

我是Python的新手,并查找如何查找,如果列表中有内容并找到

if any(name in s for s in list):
Run Code Online (Sandbox Code Playgroud)

后来我发现了

if name in list:
Run Code Online (Sandbox Code Playgroud)

这似乎更简单.为什么建议第一个选项,有什么区别?

wim*_*wim 5

他们实际上并没有做同样的事情.显示逻辑差异的简单示例:

>>> list_ = ['spam', 'spam and eggs']
>>> name = 'eggs'
>>> any(name in s for s in list_)
True
>>> name in list_
False
Run Code Online (Sandbox Code Playgroud)