python - python 列表的两个 "contains"操作之间的区别

标签 python list contains

我是 python 的新手,发现我需要查询一个列表是否包含某个项目。
我在各种网站(包括 this similar stackoverflow question )上看到的大多数帖子都提出了类似的建议

for i in list
    if i == thingIAmLookingFor
        return True

但是,我也从一个单独的论坛上发现

if thingIAmLookingFor in list
    # do work

有效。

我想知道 if thing in list 方法是否是 for i in list 方法的简写,或者它的实现方式是否不同。

我也想知道哪个更受欢迎。

最佳答案

在您的简单示例中,当然更好地使用in

但是...在the question you link to , in 不起作用(至少不是直接起作用),因为 OP 不想找到一个等于某物的对象,而是一个具有 属性的对象n 等于某物。

一个answer 确实提到在列表理解中使用in,但我不确定为什么不使用生成器表达式:

if 5 in (data.n for data in myList):
    print "Found it"

但这与其他方法相比几乎没有什么改进,例如使用 any 的方法:

if any(data.n == 5 for data in myList):
    print "Found it"

关于python - python 列表的两个 "contains"操作之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829188/

相关文章:

python - 当我 "read"列的文本内容时,为什么会收到 StaleElementReferenceException?

python - Matplotlib错误消息: “TypeError: ' Ellipse' object is not iterable”

python - 在 Windows、Linux 和 Mac 上运行的独立于平台的文本到语音 Python 库?

具有动态节点大小的 C 链表

c# - 使用 contains 进行不区分大小写的字符串搜索

SQL Server 查找包含的组

python - 什么是 Ruby 类方法的 Python 等价物?

java - java中从List中随机选择一个对象

python - 列表内列表python

java - 如何检查字符串是否包含不区分大小写的单词?