python 获得两个数组(List)交集、并集与差集

1.获取两个数组的交集

#交集即是两个数组中都有的元素
c = list(set(a).intersection(set(b)))

2.获取两个数组的并集

#两个数组的并集就是将两个数组合并到一起
c = list(set(a).union(set(b)))

3.获取两个数组的差集

#差集即在数组b中有而在数组b中没有的元素
c = list(set(b).difference(set(b)))

如果有帮到您,打个赏呗
在这里插入图片描述

数据结构链表可以用于实现动态数组,支持元素的插入、删除和查找操作。要将链表从小到大排列,你可以采用归并排序或冒泡排序的思想。这里简单描述一种插入排序的方式: 1. 遍历整个链表,对于每个节点,将其值与已排序部分的最后一个节点比较,如果当前值小于后者,就将它插入到适当位置,保持链表有序。 至于链表的集合运算(交集并集差集),由于链表不是哈希集合,通常需要遍历整个链表来进行操作。以下是基本步骤: - **交集**:对于两个链表,遍历它们,只保留同时存在于两个链表中的节点,形成一个新的链表。 - **并集**:遍历第一个链表,然后遍历第二个链表,将所有节点添加到新的链表中,不检查是否已经存在。 - **差集**:首先计算并集,然后再遍历一次第一个链表,移除那些在第二个链表中存在的节点。 以下是简单的伪代码示例: ```python # 假设ListNode是一个链表节点类 def sort_linked_list(head): # 实现排序... def intersect_lists(list1_head, list2_head): # 创建空链表存储结果 result = ListNode(None) current = result while list1_head and list2_head: if list1_head.val <= list2_head.val: current.next = list1_head list1_head = list1_head.next else: current.next = list2_head list2_head = list2_head.next current = current.next return result.next # 对于并集差集,需要先做并集再做差集 def union_and_difference(list1_head, list2_head): union_result = intersect_lists(list1_head, list2_head) difference_result = copy.deepcopy(list1_head) # 或者从头开始遍历list1 current = union_result while current: next_in_list1 = find_node_in_list(difference_result, current.val) if not next_in_list1: difference_result.next = current difference_result = difference_result.next current = current.next return union_result, difference_result ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值