我是 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/