您的位置:

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

列表在 Python 中是一个至关重要的容器,因为它能够将所有类型的数据元素存储为一个集合。了解具体的列表操作对于能够进行日常编程至关重要。本文将讨论最基本的列表操作之一,即验证列表中元素的存在。

方法 1:朴素方法

在 Naive 方法中,使用一个循环来遍历整个元素列表,以验证该元素是否是目标元素。这是确定列表中元素是否存在的最有效方法。

方法 2:用于

Python 是确定列表中是否存在元素的最常见方法。如果元素出现在列表中,此方法返回 True 如果元素不在集合中,则返回 False。使用这种检查方法不需要排序列表。

代码#1: 演示如何使用 Naive 方法以及 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 更有意义。然而,效率作为一个优势也有一些缺点。其中一个问题是列表的显示顺序没有得到维护。如果你选择做一个列表,然后做一个新的,你需要利用额外的空间。另一个问题是 set 不允许重复,因此重复的元素将从列表中删除。

方法 4:使用 sort() +平分 _left()

确定元素存在的传统二分搜索方法意味着必须首先排序列表,从而不能保持元素的顺序。平分 _left()将返回找到的元素的第一个实例。它与 C++ STL 中的下界()的工作方式类似。

注意:等分函数将只给出元素的位置,而不提供元素是否存在的细节。

代码#2: 演示如何使用 set() + in 和 sort() +平分 _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:使用计数()

我们可以利用内置的 Python List 方法 count()来验证传递的元素是否存在于 List 中。如果我们传递的元素在列表中,那么 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 中的不同方法来检查列表中是否存在给定的元素。