Python 程序查找两个列表的交集


2022年4月10日, Learn eTutorial
1754

什么是列表的交集?

在这个简单的 Python 程序中,我们需要找到两个列表或数组的交集。交集与并集正好相反。在并集中,我们取任一列表中存在的所有元素,但在列表的交集中,我们只取同时存在于两个列表中的元素。

让我们举个例子来理解这个概念。集合 A={ 1, 2, 3, 4} 和集合 B = {3, 4, 5, 6},那么集合 A 和 B 的交集将表示为 I = {3, 4},即同时存在于两个列表中的元素。

Python 中如何实现交集?

现在让我们看看如何在 Python 编程语言中实现交集。初始化两个列表后,我们使用 for 循环 和 Python 语言中的 append 运算符向两个列表中添加元素。然后,我们使用一个用户定义的函数来获取交集元素,在该函数中,我们进行操作以获取两个列表中共有的元素。

注意: 我们在 Python 语言中使用了 set() 内置函数。set() 是一个内置函数,用于将可迭代对象转换为一组可迭代元素,通常称为集合。set() 只接受一个参数并返回可迭代序列的集合。

算法

步骤 1: 在 Python 编程中定义主函数。

步骤 2: 使用两个列表并初始化这两个列表。

步骤 3: 使用 Python 语法接受两个列表所需的元素数量。

步骤 4: 打开 for 循环,使用 append 运算符将元素添加到第一个列表中。

步骤 5: 使用 print 语句 print,"交集是。"

步骤 6: 调用用户定义的函数进行交集操作,并在 Python 中打印返回值。

用户定义函数

步骤 1: 定义函数并接收列表作为参数。

步骤 2: 返回 set() 值的 and 操作结果。set() 在上一节中已描述。

Python 源代码

                                          def intersection(a, b):
    return list(set(a) & set(b))
 
def main():
    alist=[]
    blist=[]
    n1=int(input("Enter number of elements for list 1:"))
    n2=int(input("Enter number of elements for list 2:"))
    print("For list1:")
    for x in range(0,n1):
        element=int(input("Enter element:"))
        alist.append(element)
    print("For list2:")
    for x in range(0,n2):
        element=int(input("Enter element:"))
        blist.append(element)
    print("The intersection is :")
    print(intersection(alist, blist))
main()
                                      

输出

Enter number of elements for list 1: 3
Enter number of elements for list 2: 4
For list1:
Enter element: 3
Enter element: 2
Enter element: 6
For list2:
Enter element: 3
Enter element: 6
Enter element: 4
Enter element: 8
The intersection is :
[3, 6]