python获得两个数组交集、并集、差集的方法

  • Post category:Python

在Python中,可以使用set集合来实现两个数组的交集、并集、差集等操作。set集合是一种无序且不重复的数据结构,可以用来进行集合运算。下面是详细的讲解和示例说明。

获取两个数组的交集

可以使用set集合的intersection()方法来获取两个数组的交集。intersection()方法会返回一个新的set集合,其中包含两个数组中共同的元素。下面是一个示例:

# 定义两个数组
arr1 = [1, 2, 3, 4, 5]
arr2 = [3, 4, 5, 6, 7]

# 获取两个数组的交集
intersection = set(arr1).intersection(set(arr2))

# 输出交集
print(intersection)    # 输出:{3, 4, 5}

在这个示例中,我们定义了两个数组arr1和arr2,并使用set()函数将它们转换为set集合。然后使用intersection()方法获取两个数组的交集,并输出结果。

获取两个数组的并集

可以使用set集合的union()方法来获取两个数组的并集。union()方法会返回一个新的set集合,其中包含两个数组中所有的元素,且不重复。下面是一个示例:

# 定义两个数组
arr1 = [1, 2, 3, 4, 5]
arr2 = [3, 4, 5, 6, 7]

# 获取两个数组的并集
union = set(arr1).union(set(arr2))

# 输出并集
print(union)    # 输出:{1, 2, 3, 4, 5, 6, 7}

在这个示例中,我们定义了两个数组arr1和arr2,并使用set()函数将它们转换为set集合。然后使用union()方法获取两个数组的并集,并输出结果。

获取两个数组的差集

可以使用set集合的difference()方法来获取两个数组的差集。difference()方法会返回一个新的set集合,其中包含只在第一个数组中出现的元素。下面是一个示例:

# 定义两个数组
arr1 = [1, 2, 3, 4, 5]
arr2 = [3, 4, 5, 6, 7]

# 获取两个数组的差集
difference = set(arr1).difference(set(arr2))

# 输出差集
print(difference)    # 输出:{1, 2}

在这个示例中,我们定义了两个数组arr1和arr2,并使用set()函数将它们转换为set集合。然后使用difference()方法获取两个数组的差集,并输出结果。

示例说明

下面是一个示例,演示如何使用set集合来处理学生的选课信息:

# 定义两个列表,分别存储学生的选课信息
student1_courses = ['Math', 'English', 'Science']
student2_courses = ['English', 'History', 'Geography']

# 获取所有学生选的课程
all_courses = set(student1_courses).union(set(student2_courses))

# 获取两个学生共同选的课程
common_courses = set(student1_courses).intersection(set(student2_courses))

# 获取只有一个学生选的课程
unique_courses = set(student1_courses).symmetric_difference(set(student2_courses))

# 输出结果
print('所有学生选的课程:', all_courses)
print('两个学生共同选的课程:', common_courses)
print('只有一个学生选的课程:', unique_courses)

在这个示例中,我们定义了两个列表student1_courses和student2_courses,分别存储两个学生的选课信息。然后使用set集合的union()、intersection()和symmetric_difference()方法来获取所有学生选的课程、两个学生共同选的课程和只有一个学生选的课程。最后输出结果。

下面是另一个示例,演示了如何使用set集合来去除数组中的重复元素:

# 定义一个数组,包含重复元素
arr = [1, 2, 3, 2, 4, 3, 5, 6, 5]

# 使用set集合去除重复元素
unique_arr = list(set(arr))

# 输出去重后的数组
print(unique_arr)    # 输出:[1, 2, 3, 4, 5, 6]

在这个示例中,我们定义了一个数组arr,其中包含重复的元素。然后使用set集合去除重复元素,并使用list()函数将set集合转换为列表。最后输出去重后的数组。