如何比较Python中的两个列表?
在Python中,列表是类似物品的集合。有时我们需要比较两个列表中的数据项来执行某些操作。我们将讨论比较Python中两个列表的某些方法。
使用list.sort()和运算符
list.sort()方法对两个列表进行排序,而运算符逐个比较两个列表的项目,这意味着它们在相等位置具有相同的数据项目。这检查列表是否包含相等的数据项值,但它不考虑列表中元素的顺序。这意味着根据这种比较方法,列表[1,2,3]将等于列表[2,1,3]。
示例
def compareList(l1,l2):
l1.sort()
l2.sort()
if(l1 == l2):
返回“等于”
else:
返回“不相等”
l1 = [1,2,3]
l2 = [2,1,3]
print(“第一次比较”,compareList(l1,l2))
l3 = [1,2,3]
l4 = [1,2,4]
print(“第二次比较”,compareList(l3,l4))
输出
First comparison Equal
Second comparison Non equal
使用collections.Counter()
这种方法通过将第一个列表中每个元素的频率与第二个列表进行比较来测试列表的相等性。这种方法也不考虑列表元素的顺序。
示例
import collections
def compareList(l1,l2):
if(collections.Counter(l1)== collections.Counter(l2)):
返回“等于”
else:
返回“不相等”
l1 = [1,2,3]
l2 = [2,1,3]
print(“第一次比较”,compareList(l1,l2))
l3 = [1,2,3]
l4 = [1,2,4]
print(“第二次比较”,compareList(l3,l4))
输出
First comparison Non equal
Second comparison Equal
使用sum(),zip()和len()
此方法首先比较两个列表的每个元素,并将其存储为1的总和,然后将其与另一个列表的长度进行比较。对于此方法,我们必须在执行此计算之前先检查两个列表的长度是否相等。
此方法还检查元素的顺序。这意味着列表[1,2,3]不等于列表[2,1,3]。
示例
def compareList(l1,l2):
if(len(l1)== len(l2)且len(l1)== sum([1 for i,j in zip(l1,l2)if i == j])):
返回“等于”
else:
返回“不相等”
l1 =[1,2,3]
l2 = [2,1,3]
print(“第一次比较”,compareList(l1,l2))
l3 = [1,2,3]
l4 = [1,2,3]
print(“第二次比较”,compareList(l3,l4))
输出
First comparison Non equal
Second comparison Equal
如上例所示,对于第一个比较,两个列表中的数据项是相等的,但元素的顺序不同。因此,第一个比较返回不相等。
使用运算符
这是第一种方法的修改。在此方法中,列表在不排序的情况下进行比较,因此,此方法考虑列表中数据项的顺序。
示例
def compareList(l1,l2):
if(l1==l2):
return "Equal"
else:
return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,3]
print("Second comparison",compareList(l3,l4))
输出
First comparison Non equal
Second comparison Equal
这些是在Python中比较列表的方法,包括考虑数据项的顺序和不考虑数据项的顺序两种方式。
极客教程