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中的元素不能为字典
---------------------
作者:cuckoo5
来源:CSDN
原文:https://blog.csdn.net/wudj810818/article/details/50403424
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/zi-lin-xia-tian/p/9813116.html

时间: 2024-08-29 07:34:51

python的交集、并集、差集的相关文章

Python 求两个文本文件以行为单位的交集 并集 差集

Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r').readlines()) print 'ins: %s'%(s1.intersection(s2)) print 'uni: %s'%(s1.union(s2)) print 'dif: %s'%(s1.difference(s2).union(s2.difference(s1))) 原文地址:h

(一)Python入门-3序列:19集合-特点-创建和删除-交集并集差集运算

集合: 集合是无序可变,元素不能重复.实际上,集合底层是字典实现,集合的所有元素都是字典 中的“键对象”,因此是不能重复的且唯一的. 一:集合的创建和删除 1. 使用{}创建集合对象,并使用 add()方法添加元素 1 >>> a = {1,3,5} 2 >>> a 3 {1, 3, 5} 4 >>> a.add(7) 5 >>> a 6 {1, 3, 5, 7} 7 >>> a.add(5) 8 >>&

Java求字符串数组交集 并集 差集 去重复并集

//系统方法 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Test { public static void main(String[] args) { List list1 =new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add

C# 取两个集合的交集\并集\差集

交集:Intersect 并集:Union 差集:Except var A= new List() { 1, 2, 3, 4, 5, 6 }; var B= new List() { 3, 4, 5, 6,7,8,9 }; var C= A.Intersect(B); //交集 { 3, 4, 5, 6 } var D= A.Union(B); //并集 { 1, 2, 3, 4, 5, 6,7,8,9 } var E= A.Except(B); //差集 { 1, 2 } var F= B.E

java list 交集 并集 差集 去重复并集

package com; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class Test { public static void main(String[] args) {  List list1 =new ArrayList();  list1.add("1111");  list1.add("2222");  list1.add(&quo

js Array 交集 并集 差集 去重

最劲项目需要用到js数组去重和交集的一些运算,我的数组元素个数可能到达1000以上,网上的实现方式都是2次循环,性能不适合我的需求,1000*1000那循环次数太多了,所以我这里采用对象object来做处理,用空间换时间,code 如下: ///集合取交集 Array.intersect = function () { var result = new Array(); var arrCount = arguments.length;/*数组个数,默认2个数组取交集*/ if (arrCount

【转】 js数组 Array 交集 并集 差集 去重

原文:http://blog.csdn.net/ma_jiang/article/details/52672762 最劲项目需要用到js数组去重和交集的一些运算,我的数组元素个数可能到达1000以上,网上的实现方式都是2次循环,性能不适合我的需求,1000*1000那次数太多了,所以我这里采用对象object来做处理,用空间换时间,code 如下: ///集合取交集 Array.intersect = function () { var result = new Array(); var obj

SQL求 交集 并集 差集

故事是这样的-.. 故事情节: 表 tb_test 有两列, colA , colB; 求 colA , colB 的并交差集-   -- 计算并集 SELECT DISTINCT colB FROM tb_test UNION SELECT DISTINCT colA FROM tb_test -- 计算交集 SELECT DISTINCT colB FROM tb_test INTERSECT SELECT DISTINCT colA FROM tb_test -- 计算差集 SELECT

java List交集 并集 差集 去重复并集

首先定义两个list List list1 =new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add("3333"); List list2 =new ArrayList(); list2.add("3333"); list2.add("4444"); list2.add("5555"); 运行: for (int

十二道MR习题 - 3 - 交集并集差集

题目 有两个文件A和B,两个文件中都有几百万行数字,现在需要找出A文件和B文件中数字集合的交集.并集.以及A对B的差集. 简单说一下思路: 这个问题关键在于key和value的设计.这里我将文件中的数字设置为key,将文件名称设置为value.这样在reduce阶段很容易就能找出A.B两个文件中数字的交并差集了. 并集就是reduce阶段能输出的全部记录:交集则需要做下过滤,即一个记录中的value需要同时有A.B两个文件的名称:差集则是文件名称集合中只包含A或B的记录. 看下用MapReduc