python中求两个List的交集、并集和差集
直接上代码,有三种方法,第三种调用库函数效率最高
# ! /usr/bin/env python
# encoding:utf-8 if __name__ == '__main__':
a = [1,2,3,4,5]
b = [2,3,6,7]
u =[]
dif =[]
intersec = [] '''方法一,最简单的方法,容易想到的'''
for item in a:
u.append(item)
if item in b:
intersec.append(item)
if item not in b:
dif.append(item)
for key in b:
u.append(key)
print('u is ',list(set(u))) #u is [1, 2, 3, 4, 5, 6, 7]
print('dif is ', dif) #dif is [1, 4, 5]
print('intersec is ', intersec) #intersec is [2, 3] '''方法二'''
a = [1,2,3,4,5]
b = [2,3,6,7]
intersec = [item for item in a if item in b]
dif = [item for item in a if item not in b] #不能放在最后,因为b.extend时b已经被改变了
b.extend([i for i in a])
u = b print('u is ', list(set(u))) # u is [1, 2, 3, 4, 5, 6, 7]
print('dif is ', dif) # dif is [1, 4, 5]
print('intersec is ', intersec) # intersec is [2, 3] '''方法三,调用库函数,集合操作'''
a = [1,2,3,4,5]
b = [2,3,6,7]
intersec = list(set(a).intersection(set(b)))
u = list(set(a).union(set(b)))
dif = list(set(a).difference(set(b)))
print('u is ', u) # u is [1, 2, 3, 4, 5, 6, 7]
print('dif is ', dif) # dif is [1, 4, 5]
print('intersec is ', intersec) # intersec is [2, 3]
python中求两个List的交集、并集和差集的更多相关文章
- SQLServer中求两个字符串的交集(字符串以符号分隔)
两个字符串,以特定符号分隔(例如‘,’号),求交集 第一种情况: declare @m varchar(100),@n varchar(100)select @m=',2,3,5,7,8,9,10,' ...
- python中对两个 list 求交集,并集和差集
python中对两个 list 求交集,并集和差集: 1.首先是较为浅白的做法: >>> a=[1,2,3,4,5,6,7,8,9,10] >>> b=[1,2,3 ...
- 求两个集合的交集和并集C#
我是用hashset<T>来实现的 具体如代码所示 using System; using System.Collections.Generic; using System.Linq; u ...
- java用最少循环求两个数组的交集、差集、并集
import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List ...
- java使用bitmap求两个数组的交集
一般来说int代表一个数字,但是如果利用每一个位 ,则可以表示32个数字 ,在数据量极大的情况下可以显著的减轻内存的负担.我们就以int为例构造一个bitmap,并使用其来解决一个简单的问题:求两个数 ...
- Python中的两种结构dict和set
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 假设要根据同学的名字查找对应的成绩 如果 ...
- python(leetcode)-350两个数组的交集
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5 ...
- java求两个集合的交集和并集,比较器
求连个集合的交集: import java.util.ArrayList; import java.util.List; public class TestCollection { public st ...
- [LeetCode] 160. Intersection of Two Linked Lists 求两个链表的交集
Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...
随机推荐
- JVM性能、多线程排查常用命令
最近遇到很一个很棘手的多线程问题,跟踪了几天终于解决了,在此记录跟踪过程的常用命令,后期有空再做具体的事件总结.软件的开发一定要有监控,一定要有监控,一定要有监控,重要的事情说三遍.没有监控的软件就是 ...
- 浏览器兼容java小程序配置说明
最近在使用的一个web应用系统是内嵌了java小程序,遇到了各种浏览器兼容性问题,现梳理如下: 1.通过以下链接检测当前电脑是否已经安装有java https://java.com/zh_CN/dow ...
- 解决ExtNET ExtJS 特定日期选择月份跳转导致无法选择月份的问题
背景 项目使用 Ext.NET 2.2.0.40838 , 对应Ext JS4.2版本. 结果 2017/3/31 号的时候偶然间点日历选择控件选择2月,10月等月份突然就跳到3月份,9月份之类. 就 ...
- javasript-for循环
先来个for循环的例子: var i=0,j=0; for(;i<10,j<6;i++,j++){ k=i+j; } console.log(k) 想知道会输出什么,首先得知道完整循环了多 ...
- Keras 实现一个简单GAN
Keras 实现一个简单GAN 代码中需提供: Loss Function 参见Keras 或者 Tensorflow 文档 model_param_matrix 反向调整的模型参数/参数矩阵 ...
- Json2:使用gson解析为List和Map
import java.lang.reflect.Type; import java.util.List; import com.google.gson.Gson; import com.google ...
- eclipse聚合工程如何提交SVN,如何从SVN下载
提交: 比如聚合工程为taotao-manager,包含了taotao1,taotao2,taotao3等项目,在提交SVN只需 提交taotao-manager就可以了 1.右键taotao-man ...
- 自动创建表出错 type=InnDB
因为type=InnoDB在5.0以前是可以使用的,但5.1之后就不行了 只需要修改配置: hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDia ...
- python中列表删除和多重循环退出
在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子: 列表删除里面的坑 比如我们有一个列表里面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,10 ...
- sshd_config
1.sshd_config 选项不区分大小写,参数区分大小写. sshd_config选项及参数 选项 默认值 说明 AcceptEnv 不接受任何值 AddressFamily any any/ ...