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 ...
随机推荐
- 第三章: web界面操作
3.1 zabbix的web安装 3.1.1 使用浏览器访问 http://10.0.0.61/zabbix/setup.php 在检测信息时,可查看具体的报错信息进行不同的解决 选择mysql数据库 ...
- jstat 详解
最近项目里面使用到了多线程,有时候多线程会存在挂掉的情况,趁机好好学习总结一下JVM调优的方法. jstat使用: #jstat -help|-options #jstat -<option&g ...
- Windows安装启动MySQL
Win安装MySQL数据库将下载下来的mysql解压到指定目录下,cmd切换到bin目录下>mysqld -install 安装服务>mysqld -remove 卸载服务>net ...
- spark streaming的有状态例子
import org.apache.spark._ import org.apache.spark.streaming._ /** * Created by code-pc on 16/3/14. * ...
- 第9课 基于范围的for循环
1. 基于范围的for循环(range-based for) (1)语法:for(decl : coll){//statement} ①decl用于声明元素及类型,如int elem或auto ele ...
- Javascript-关于for in和forEach
JS-for in:用来遍历对象 //遍历对象 for in var opts={name:'xiaofei',age:'28岁',job:'web前端工程师'} for (var k in opts ...
- Java - 30 Java 网络编程
Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节.你可以直接使用这些类和接 ...
- CS229 6.14 Neurons Networks Restricted Boltzmann Machines
1.RBM简介 受限玻尔兹曼机(Restricted Boltzmann Machines,RBM)最早由hinton提出,是一种无监督学习方法,即对于给定数据,找到最大程度拟合这组数据的参数.RBM ...
- 新的开始 接触ASP.NET Core跨平台的框架
今天我刚学习了使用Visual Studio 2015新建了.NET Core项目写了一个小的CSHTML代码.按我的话说就是,把C#和HTML合起来使用了,写了一个简单的关于学生的“增” “删” “ ...
- TableStore:创建SyncClient+getRow读取一行数据
1.通过控制台或者客户端,在TableStore中新建了实例owlforest,在实例详情中获取到实例访问地址endPoint 2.新建表user,确定主键为userid(Interger)类型,因为 ...