欢迎访问宙启技术站
智能推送

contains()判断列表中是否包含某元素?

发布时间:2023-06-23 22:04:31

Python中的contains()函数是用来判断一个列表中是否包含某元素的函数,其语法如下:

my_list = [1, 2, 3, 4, 5]
if 3 in my_list:
    print("3 is in my_list.")

运行结果为:

3 is in my_list.

以上代码中,通过in关键字来判断3是否在my_list列表中,最终得到的结果是3在my_list列表中。

contains()函数的实现原理是遍历整个列表,逐个检查列表中的元素是否与指定元素相同,如果相同则返回True,否则返回False。由于遍历整个列表的时间复杂度是O(n),因此contains()函数的实现效率并不高,特别是当列表中的元素数量很大时,效率会更低。

除了contains()函数,还有一些其他的函数可以用来判断列表中是否包含某元素,例如:

1. index()函数:如果元素存在于列表中,返回列表中该元素的索引位置,否则返回一个ValueError异常。

my_list = [1, 2, 3, 4, 5]
try:
    index = my_list.index(3)
    print(f"3 is in my_list at position {index}")
except ValueError:
    print("3 is not in my_list")

运行结果为:

3 is in my_list at position 2

如果元素不存在于列表中,则抛出ValueError异常。

my_list = [1, 2, 3, 4, 5]
try:
    index = my_list.index(6)
    print(f"6 is in my_list at position {index}")
except ValueError:
    print("6 is not in my_list")

运行结果为:

6 is not in my_list

2. count()函数:用于统计指定元素在列表中出现的次数。

my_list = [1, 2, 3, 4, 3, 5, 3]
count = my_list.count(3)
if count > 0:
    print(f"3 appears {count} times in my_list")
else:
    print("3 is not in my_list")

运行结果为:

3 appears 3 times in my_list

以上代码中,count函数返回3在my_list中出现的次数,因此最终得到的结果是3在my_list列表中,并且出现了3次。

下面是一个使用contains()函数判断列表中是否包含某元素的例子:

def foo(x):
    my_list = [1, 2, 3, 4, 5]
    if x in my_list:
        print(f"{x} is in my_list")
    else:
        print(f"{x} is not in my_list")


foo(3)  # 3 is in my_list
foo(6)  # 6 is not in my_list

运行结果为:

3 is in my_list
6 is not in my_list

对于包含大量元素的列表,contains()函数的性能并不是最优的,这时可以考虑使用set()函数将列表转化为一个集合,这样判断某元素是否在原列表中时,可以直接通过in关键字来判断元素是否存在于集合中,这样的效率要比遍历整个列表要高。例如:

my_list = [1, 2, 3, 4, 5]
my_set = set(my_list)

if 3 in my_set:
    print(f"3 is in my_list.")

运行结果为:

3 is in my_list.

以上代码中,将my_list转化为一个集合my_set,然后通过in关键字来判断3是否存在于my_set中,最终得到的结果是3存在于my_set中。这样的方法比contains()函数要快得多。但是,将列表转化为集合的过程需要一定的时间,因此仅当列表中的元素数量很大时,才值得考虑将其转化为集合。