如何在Python中检查元素是否存在于列表中

如何在Python中检查元素是否存在于列表中

列表是Python中的一个关键容器,它能够以集合的形式存储各种类型的数据。了解特定的列表操作对于能够进行日常编程至关重要。本文将讨论最基本的列表操作之一,即验证列表中元素的存在性。

方法1:原生方法

在朴素方法中,通过循环遍历整个元素列表来验证元素是否为目标元素。这是确定列表中元素存在性的最有效方法。

方法2:使用in

Python中最常见的确定元素是否在列表中的方法是使用in。如果元素存在于列表中,则此方法返回True,否则返回False。并不需要对列表进行排序才能使用此检查方法。

代码 #1: 通过使用朴素方法和in方法演示如何检查元素是否在列表中。

# First, we will initialize list
test_list1 = [ 1, 5, 2, 6, 3, 5 ]

print ("Check if 5 exists in list (using loop): ")

# Here, we will checking if 7 exists in list using loop
for K in test_list1:
    if(K == 7) :
        print ("Given element Exists")
    else:
        print ("Given element does not exists")

print ("Check if 5 exists in list (using in): ")

# Here, we will check if 5 exists in list using in
if (5 in test_list1):
    print ("Given element Exists")
else:
    print ("Given element does not exists")

输出:

Check if 5 exists in list ( using loop ) : 
Given element does not exists
Check if 5 exists in list ( using in ) : 
Given element Exists

方法3:使用set() + in

将列表转换为集合,然后使用in可能比仅使用in更有意义。但是,作为一个优点的效率也有一些缺点。其中一个问题是列表显示的顺序没有保持。如果选择创建一个列表并创建一个新列表,则需要使用额外的空间。另一个问题是集合不允许重复元素,因此重复的元素将从列表中删除。

方法4:使用sort() + bisect_left()

传统的二分查找方法确定元素是否存在意味着列表必须首先排序,因此无法保持元素的顺序。 bisect_left() 将返回找到的第一个元素实例。它的工作方式类似于 C++ STL 中的 lower_bound()。

注意: bisect 函数只会给出元素的位置,而不提供元素是否存在的详细信息。

代码#2: 演示使用set() + in和sort() + bisect_left() 来检查列表中元素的存在。

from bisect import bisect_left as BL
from bisect import bisect as BS

# First, we will initialize list
test_list_set1 = [ 1, 5, 2, 6, 3, 5 ]
test_list_bisect1 = [ 1, 5, 2, 6, 3, 5 ]

print ("Checking if 5 exists in list (using set() + in): ")

# Check if 7 exists in list using set() + in
test_list_set1 = set(test_list_set1)
if 7 in test_list_set1:
    print ("Given element Exists")
else:
    print ("Given element does not exists")

print ("Checking if 7 exists in list (using sort() + bisect_left()): ")

# Check if 8 exists in list using sort() + bisect_left()
test_list_bisect1.sort()
if BL(test_list_bisect1, )!= BS(test_list_bisect1, 8):
    print ("Given element Exists")
else:
    print ("Given element does not exists")

输出:

Checking if 5 exists in list (using set() + in): 
Given element does not exists
Checking if 7 exists in list (using sort() + bisect_left()): 
Given element does not exists

方法5:使用count()函数

我们可以利用内置的Python List函数count()来验证传入的元素是否存在于列表中。如果我们传入的元素在列表中存在,那么count()函数将会显示它在整个列表中出现的次数。如果结果是一个正数,那么意味着该元素存在于列表中。

代码#3: 解释了如何通过计数来验证列表中元素的存在。

# First, we will initialize list
test_list1 = [ 1, 5, 2, 6, 3, 5, 46, 2 ]

print ("Checking if 5 exists in list: ")

# Here we will calculate the number of times element exists in list
exist_count1 = test_list1.count(5)

# Now, we will check if it is more then 0
if exist_count1 > 0:
    print("Yes, 5 exists in list")
else:
    print("No, 5 does not exists in list")
#Checking for another number:
print ("Checking if 46 exists in list: ")

# Here we will calculate the number of times element exists in list
exist_count2 = test_list1.count(46)

# Now, we will check if it is more then 0
if exist_count2 > 0:
    print("Yes, 46 exists in list")
else:
    print("No, 46 does not exists in list")

输出:

Checking if 5 exists in list: 
Yes, 5 exists in list
Checking if 46 exists in list: 
Yes, 46 exists in list

结论

在本教程中,我们讨论了如何使用不同的方法在Python中检查给定的元素是否存在于列表中。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程