列表中的名称和 any(name in s for s in list) 的区别

3

我是 Python 的新手,查找如何确定某个元素是否在列表中,发现了以下代码:

if any(name in s for s in list):

之后,我发现
if name in list:

第一种选项似乎更简单。为什么会建议使用第一种选项?两种选项有什么区别?


1
好吧,这两个例子都不是好的代码,因为它们使用list作为变量名。这两个例子在做不同的事情,第一个是检查name是否包含在list的元素中,而第二个是检查name是否list的元素。 - user3483203
1个回答

6

它们实际上并不做同样的事情。下面是一个简单的例子,展示了它们之间的逻辑差异:

>>> list_ = ['spam', 'spam and eggs']
>>> name = 'eggs'
>>> any(name in s for s in list_)
True
>>> name in list_
False

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接