Python 两个列表的差集、并集和交集实现代码

yipeiwu_com5年前Python基础

①差集
方法一:

if __name__ == '__main__':
	a_list = [{'a' : 1}, {'b' : 2}, {'c' : 3}, {'d' : 4}, {'e' : 5}]
	b_list = [{'a' : 1}, {'b' : 2}]
	ret_list = []
	for item in a_list:
		if item not in b_list:
			ret_list.append(item)
	for item in b_list:
		if item not in a_list:
			ret_list.append(item)
	print(ret_list)

执行结果:

方法二:

if __name__ == '__main__':
	a_list = [{'a' : 1}, {'b' : 2}, {'c' : 3}, {'d' : 4}, {'e' : 5}]
	b_list = [{'a' : 1}, {'b' : 2}]
	ret_list = [item for item in a_list if item not in b_list] + [item for item in b_list if item not in a_list]
	print(ret_list)

执行结果:

方法三:

if __name__ == '__main__':
	a_list = [1, 2, 3, 4, 5]
	b_list = [1, 4, 5]
	ret_list = list(set(a_list)^set(b_list))
	print(ret_list)

执行结果:

注:此方法中,两个list中的元素不能为字典

②并集

if __name__ == '__main__':
	a_list = [1, 2, 3, 4, 5]
	b_list = [1, 4, 5]
	ret_list = list(set(a_list).union(set(b_list)))
	print(ret_list)

执行结果:

注:此方法中,两个list中的元素不能为字典

③交集

if __name__ == '__main__':
	a_list = [1, 2, 3, 4, 5]
	b_list = [1, 4, 5]
	ret_list = list((set(a_list).union(set(b_list)))^(set(a_list)^set(b_list)))
	print(ret_list)

执行结果:

注:此方法中,两个list中的元素不能为字典

相关文章

Python使用pandas和xlsxwriter读写xlsx文件的方法示例

Python使用pandas和xlsxwriter读写xlsx文件的方法示例

python使用pandas和xlsxwriter读写xlsx文件 已有xlsx文件如下: 1. 读取前n行所有数据 # coding: utf-8 import pandas a...

python多线程并发及测试框架案例

这篇文章主要介绍了python多线程并发及测试框架案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、循环创建多个线程,并通过循环...

Python3.2模拟实现webqq登录

这是我最初学习时自己做的一个python模拟登录webqq的实例代码,具体代码如下 import hashlib from urllib import request,parse f...

VTK与Python实现机械臂三维模型可视化详解

VTK与Python实现机械臂三维模型可视化详解

三维可视化系统的建立依赖于三维图形平台, 如 OpenGL、VTK、OGRE、OSG等, 传统的方法多采用OpenGL进行底层编程,即对其特有的函数进行定量操作, 需要开发人员熟悉相关函...

python dataframe向下向上填充,fillna和ffill的方法

首先新建一个dataframe: In[8]: df = pd.DataFrame({'name':list('ABCDA'),'house':[1,1,2,3,3],'date':...