Python求两个list的交集、并集、补集、对称差集的两种方法

简介: Python求两个list的交集、并集、补集、对称差集的两种方法

1、使用set集合运算符

a = [0,1,2,3,4]
b = [3,4,5,6,7,8,9]
list(set(a) & set(b))   # 使用  "&"  运算求a与b的交集,输出:[3, 4]
list(set(a) | set(b))   # 使用  "|"  运算求a与b的并集,输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list(set(b) - set(a))   # 使用  "-"  运算求a与b的差(补)集: 求b中有而a中没有的元素,输出:[5, 6, 7, 8, 9]
list(set(a) - set(b))   # 使用  "-"  运算求a与b的差(补)集: 求a中有而b中没有的元素,输出: [0, 1, 2]
list(set(a) ^ set(b))   # 使用  "^"  运算求a与b的对称差集,输出:[0, 1, 2, 5, 6, 7, 8, 9]

结果:

求交集:     list(set(a) & set(b))  输出 ->  [3, 4]
求并集:     list(set(a) | set(b))  输出 ->  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
求差(补)集: list(set(b) - set(a))  输出 ->  [5, 6, 7, 8, 9]
求差(补)集: list(set(a) - set(b))  输出 ->  [0, 1, 2]
求对称差集: list(set(a) ^ set(b))  输出 ->  [0, 1, 2, 5, 6, 7, 8, 9]

2、 使用set集合的方法 (高效率)

a = [0,1,2,3,4]
b = [3,4,5,6,7,8,9]
print(list(set(a).intersection(set(b))))  # 使用 intersection 求a与b的交集,输出:[3, 4]
print(list(set(a).union(b))  )           # 使用 union 求a与b的并集,输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(set(b).difference(set(a))))    # 使用 difference 求a与b的差(补)集:求b中有而a中没有的元素,输出: [5, 6, 7, 8, 9]
print(list(set(a).difference(set(b))) )   # 使用 difference 求a与b的差(补)集:求a中有而b中没有的元素,输出:[5, 6, 7, 8, 9]
print(list(set(a).symmetric_difference(b)))   # 使用 symmetric_difference 求a与b的对称差集,输出:[0, 1, 2, 5, 6, 7, 8, 9]

结果:

[3, 4]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
[0, 1, 2]
[0, 1, 2, 5, 6, 7, 8, 9]
目录
相关文章
|
2天前
|
SQL 关系型数据库 数据库连接
使用 Python 访问数据库的基本方法
【5月更文挑战第12天】在Python中操作数据库涉及安装数据库驱动(如mysql-connector-python, psycopg2, pymongo)、连接数据库、执行查询/更新、处理结果集及关闭连接。使用ORM(如SQLAlchemy)可简化操作。通过上下文管理器(with语句)能更好地管理资源和错误。注意根据实际需求处理事务、错误和安全性,例如使用SSL连接。
14 2
|
2天前
|
测试技术 开发者 Python
Python检查函数和方法的输入/输出
【5月更文挑战第5天】Python检查函数和方法的输入/输出
10 1
|
3天前
|
Python
【Python进阶(二)】——程序调试方法
【Python进阶(二)】——程序调试方法
|
5天前
|
存储 Linux Shell
python移除/删除非空文件夹/目录的最有效方法是什么?
python移除/删除非空文件夹/目录的最有效方法是什么?
11 0
|
8天前
|
Python
【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
【5月更文挑战第6天】【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
|
8天前
|
Python
【Python 基础】列表(list)和元组(tuple)有什么区别?
【5月更文挑战第6天】【Python 基础】列表(list)和元组(tuple)有什么区别?
|
8天前
|
数据处理 Python
Python中每个字段增加多条数据的高效方法
Python中每个字段增加多条数据的高效方法
15 1
|
8天前
|
存储 数据挖掘 Python
Python技术分享:实现选择文件或目录路径的方法
Python技术分享:实现选择文件或目录路径的方法
18 2
|
8天前
|
数据处理 Python
Python中按指定数量分割列表字符串的方法
Python中按指定数量分割列表字符串的方法
9 1
|
12天前
|
Python
使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序
【5月更文挑战第2天】使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序。示例代码展示了如何按'Name'和'Age'列排序 DataFrame。先按'Name'排序,再按'Age'排序。sort_values()的by参数接受列名列表,ascending参数控制排序顺序(默认升序),inplace参数决定是否直接修改原DataFrame。
26 1