两个列表lst1和lst2,计算两个列表的公共元素和非公共元素
方法1:
列表推导式
lst1 = [1, 3, 7]
lst2 = [3, 5, 4] a = [x for x in lst1 if x in lst2]
b = [y for y in (lst1 + lst2) if y not in a] print(a)
print(b)
方法2:
普通的for循环
lst1 = [1, 3, 7]
lst2 = [3, 5, 4]
a = []
b = [] for i in lst1:
for j in lst2:
if i == j:
a.append(i) for k in (lst1 + lst2):
if k not in a:
b.append(k) print(a)
print(b)
方法3:
利用集合(set)运算
lst1 = [1, 3, 7]
lst2 = [3, 5, 4]
a = set(lst1) # {1, 3, 7}
b = set(lst2) # {3, 5, 4}
# 交集 a & b 包含集合a和集合b中的公共元素
# print(a & b) # {3}
# 对称差集 a ^ b 包含集合a和集合b中不重复的所有元素
# print(a ^ b) # {1, 4, 5, 7}
print(list(a & b)) # [3]
print(list(a ^ b)) # [1, 4, 5, 7] # 并集 a | b 包含集合a和集合b中所有的元素
# 差集 a - b 包含集合a中有的集合b中没有的元素 x = a.symmetric_difference(b)
y = a.symmetric_difference_update(b) # 自我更新不返回对象,即a ^= b
print(x) # {1, 4, 5, 7}
print(y) # None
print(a) # {1, 4, 5, 7}
两个列表lst1和lst2,计算两个列表的公共元素和非公共元素的更多相关文章
- element ui 日期控件范围时间限制记录、以及计算两个日期之间的天数
日期的筛选经常会有最小的日期选择,例如:当前日期 :clearable="false" :picker-options="pickerOptions0" val ...
- 机器学习-文本数据-文本的相关性矩阵 1.cosing_similarity(用于计算两两特征之间的相关性)
函数说明: 1. cosing_similarity(array) 输入的样本为array格式,为经过词袋模型编码以后的向量化特征,用于计算两两样本之间的相关性 当我们使用词频或者TFidf构造出 ...
- 问题:C#时间差;结果:C# 使用TimeSpan计算两个时间差
C# 使用TimeSpan计算两个时间差 可以加两个日期之间任何一个时间单位. private string DateDiff(DateTime DateTime1, DateTime DateTim ...
- C#计算两个时间年份月份天数(根据生日计算年龄)差,求时间间隔
C#计算两个时间年份月份差 DateTime dt1 = Convert.ToDateTime("2008-8-8"); DateTime dt2 = System.DateTim ...
- python基础练习题(题目 计算两个矩阵相加)
day30 --------------------------------------------------------------- 实例044:矩阵相加 题目 计算两个矩阵相加. 分析:矩阵可 ...
- C# 获取当前月第一天和最后一天 计算两个日期差多少天
获取当前月的第一天和最后一天 DateTime now = DateTime.Now; DateTime firstDay = ); DateTime lastDay = firstDay.AddMo ...
- OpenCV,计算两幅图像的单应矩阵
平面射影变换是关于其次3维矢量的一种线性变换,可以使用一个非奇异的$3 \times 3$矩阵H表示,$X' = HX$,射影变换也叫做单应(Homography).计算出两幅图像之间的单应矩阵H,那 ...
- JavaScript实现计算两个日期之间的天数
以“yyyy-MM-dd”格式为例,现在有两个日期,分别为“2006-01-01”,“2007-05-20”. 1.调用Date.parser()方法,将字符串格式的时间戳转换为Date类型时间对象: ...
- PHP计算两个时间段是否有交集(边界重叠不算)
优化前的版本: /** * PHP计算两个时间段是否有交集(边界重叠不算) * * @param string $beginTime1 开始时间1 * @param string $endTime1 ...
随机推荐
- 【转】使用notepad运行python
Notepad++是一个开源的文本编辑器,功能强大而且使用方便,一般情况下,Notepad++作为代码查看器,很方便,但是每次要运行的时候,总是需要用右键打开其他的IDE来编译和运行,总有些不方便.特 ...
- 基于redis的分布式ID生成器
基于redis的分布式ID生成器
- Java并发编程笔记之ArrayBlockingQueue源码分析
JDK 中基于数组的阻塞队列 ArrayBlockingQueue 原理剖析,ArrayBlockingQueue 内部如何基于一把独占锁以及对应的两个条件变量实现出入队操作的线程安全? 首先我们先大 ...
- Docker启动出现"No space left on device" 或者 docker日志太多导致磁盘占满问题
机房有一台服务器上面部署了多个docker容器, 并且每个docker容器都往stderr中源源不断的输出日志,导致磁盘被占满了.Docker容器在启动/重启的时候会往/var/lib/docker中 ...
- JavaWeb学习 (三)————Tomcat服务器学习和使用(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
- [转]ionic工作原理
本文转自:https://segmentfault.com/a/1190000011495654 1.Ionic的工作原理 Ionic通过cordova把一个Web应用嵌入原生应用 用户打开一个ion ...
- spring cloud config服务器
Spring Cloud Config提供了一种在分布式系统中外部化配置服务器和客户端的支持.配置服务器有一个中心位置,管理所有环境下的应用的外部属性.客户端和服务器映射到相同Spring Event ...
- Topshelf 学习 跨平台【转载】
Topshelf 学习 跨平台 Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主. 官网:http://topshe ...
- Repeater 控件的嵌套使用
Repeater 控件的嵌套使用 ItemDataBound:数据绑定的时候(正在进行时)发生,多用在Repeater控件嵌套,对子Repeater控件进行数据绑定及模板列中统计列的计算处理等 ...
- vue组件+axios访问本地json
import axios from 'axios'export default { name: "AjaxText", data: function () { return { m ...