为了账号安全,请及时绑定邮箱和手机立即绑定

列表是否包含简短的包含功能?

列表是否包含简短的包含功能?

慕的地8271018 2019-11-06 10:39:54
我看到人们正在使用any另一个列表来查看列表中是否存在某个项目,但是有一种快速的方法吗?if list.contains(myItem):    # do something
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

您可以使用以下语法:


if myItem in list:

    # do something

同样,逆运算符:


if myItem not in list:

    # do something

它适用于列表,元组,集合和字典(检查键)。


请注意,这是列表和元组中的O(n)操作,而集合和字典中是O(1)操作。


查看完整回答
反对 回复 2019-11-06
?
湖上湖

TA贡献2003条经验 获得超2个赞

除了别人说过的话,您可能还想知道in调用该list.__contains__方法的意思,您可以在编写的任何类上定义该方法,并且可以非常方便地全面使用python。  


愚蠢的用途可能是:


>>> class ContainsEverything:

    def __init__(self):

        return None

    def __contains__(self, *elem, **k):

        return True



>>> a = ContainsEverything()

>>> 3 in a

True

>>> a in a

True

>>> False in a

True

>>> False not in a

False

>>>         


查看完整回答
反对 回复 2019-11-06
?
RISEBY

TA贡献1856条经验 获得超5个赞

我最近想出了这条衬里,用于获取True列表中是否包含任何数量的项目,或者列表中是否不包含任何项目False。使用next(...)会给它一个默认的返回值(False),这意味着它的运行速度应比运行整个列表理解的速度快得多。


list_does_contain = next((True for item in list_to_test if item == test_item), False)


查看完整回答
反对 回复 2019-11-06
  • 3 回答
  • 0 关注
  • 393 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信