Python 如何比较两个列表的元素

Python 如何比较两个列表的元素

在本文中,我们将介绍在Python中比较两个列表的元素的不同方法。要比较两个列表,我们比较一个列表的数据项与另一个列表的数据项,并检查它们是否相同。

下面是两个相似的列表。

List_1 = [1,2,3,4,5,6,7]
List_2 = [1,2,3,4,5,6,7]

以上两个的输出应该是列表是相同的。

使用set()方法和==运算符

在这种方法中,我们使用set()方法和==运算符来比较两个列表的元素。Python的set()方法可以无视项目的顺序将列表转换为集合。我们还使用等于运算符(==)来比较列表的数据项。

示例

在下面的示例中,将对这两个列表进行比较。我们将列表转换为集合,然后使用==运算符来比较每个元素。如果两个列表中的所有元素都相等,那么就会执行该块,并显示结果。

list_1 = [1, 2, 3, 4, 5]
list_2 = [2, 3, 1, 5, 4]
a = set(list_1)
b = set(list_2)
if a == b:
   print("The list_1 and list_2 are equal")
else:
   print("The list_1 and list_2 are not equal")

输出

执行上述程序后,获得以下输出。

The list_1 and list_2 are equal

使用sort()方法和==运算符

在这种方法中,我们使用 sort() 方法和==运算符来比较两个列表的元素。Python提供的 sort() 方法用于将列表的元素按升序或降序排序。在对列表进行排序后,我们使用==运算符来比较两个列表。两个列表中的相同元素处于相同的索引位置,这意味着这两个列表是相等的。

示例

在下面的示例中,我们首先使用 sort() 方法对列表的元素进行排序,然后使用==运算符来比较两个列表。

list_1 = [1, 2, 3, 4, 5]
list_2 = [2, 3, 1, 5, 4]
list_3 = [1, 5, 6, 3, 4]
list_1.sort()
list_2.sort()
list_3.sort()
if list_1 == list_2:
   print("The list_1 and list_2 are the same")
else:
   print("The list_1 and list_2 are not the same")
if list_1 == list_3:
   print("The list_1 and list_3 are the same")
else:
   print("The list_1 and list_3 are not the same")

输出

上述代码产生以下输出结果。

The list_1 and list_2 are the same
The list_1 and list_3 are not the same

使用map()和reduce()方法

我们需要导入functools来使用 map()reduce() 方法。

map() 函数接受两个参数:一个函数和一个可迭代对象(列表、元组、字符串等),并返回一个Map对象。该函数应用于每个列表元素,并返回迭代器。

此外, reduce() 方法递归地将指定的函数应用于可迭代对象。

在这种情况下,我们将结合使用这两种策略。 map() 方法会将函数(可以是用户定义的函数或lambda函数)应用于每个可迭代对象,而 reduce() 函数将处理递归应用。

示例

以下是一个使用 map()reduce() 方法比较两个列表的示例代码。

import functools
list1 = [1, 2, 3, 4, 5]
list2 = [1, 5, 6, 3, 4]
list3 = [2, 3, 1, 5, 4]
if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list2), True):
   print("The list1 and list2 are same")
else:
   print("The list1 and list2 are not same")
if functools.reduce(lambda x, y: x and y, map(lambda a,  b: a == b, list1, list3), True):
   print("The list1 and list3 are same")
else:
   print("The list1 and list3 are the same")

输出

上述代码的输出如下:

The list1 and list2 are not same
The list1 and list3 are the same

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程