首页 > 编程语言 >Python 求两个 list 的交集、并集、差集、和集

Python 求两个 list 的交集、并集、差集、和集

时间:2023-01-31 17:22:53浏览次数:60  
标签:aa bb 并集 Python Counter list 差集 交集

Python 求两个 list 的交集、并集、差集、和集

 

此处是对 list 进行运算,而非 set。

import collections
from functools import reduce

a = [1,2,3,3,4]
b = [3,3,4,5,6]
aa = collections.Counter(a)
bb = collections.Counter(b)

intersection = aa & bb  # 交集
union = aa | bb  # 并集
sub = aa - bb  # 差集
add = aa + bb  # 和集

for i in [intersection, union, sub, add]:
    print(i)  # 解集的 dict
    print(reduce(lambda x, y: x+y, [[k]*v for k, v in i.items()]))  # 解集

输出结果:

# 交集
Counter({3: 2, 4: 1})
[3, 3, 4]
# 并集
Counter({3: 2, 1: 1, 2: 1, 4: 1, 5: 1, 6: 1})
[1, 2, 3, 3, 4, 5, 6]
# 差集
Counter({1: 1, 2: 1})
[1, 2]
# 和集
Counter({3: 4, 4: 2, 1: 1, 2: 1, 5: 1, 6: 1})
[1, 2, 3, 3, 3, 3, 4, 4, 5, 6]
   

标签:aa,bb,并集,Python,Counter,list,差集,交集
From: https://www.cnblogs.com/bonelee/p/17079890.html

相关文章

  • Anaconda : python & Jupyter
    Anaconda软件安装流程-知乎(zhihu.com) 在人工智能实践中,我们可能常常会用到基于Python的集成开发环境——Anaconda。下面我们就简单介绍一下Anaconda和相关软件的安......
  • python开发云主机类型管理脚本
    python开发云主机类型管理脚本开发flavor_manager.py程序,来完成云主机类型管理的相关操作。该文件拥有以下功能:根据命令行参数,创建一个云主机类型,返回response。查询a......
  • python开发云主机类型管理脚本
    python开发云主机类型管理脚本开发flavor_manager.py程序,来完成云主机类型管理的相关操作。该文件拥有以下功能:根据命令行参数,创建一个云主机类型,返回response。查询......
  • Listener-概述 Listener-ServletContextListener使用
    Listener-概述 Listener:监听器概念:web的三大组件之一事件:一件事情事件源:事件发生的地方监听器:一个对象注册监听:将事件,事件源,......
  • python入门灵魂5问
    --python学习路线,python教程,python学哪些,python怎么学,python学到什么程度一、Python入门简介对于刚接触python编程或者想学习python自动化的人来说,基本都会有以下python入......
  • python运算符
    python运算符......
  • python开发简单的命令行工具
    介绍Python模块argparse,这是一个命令行选项,参数和子命令的解释器,使用该模块可以编写友好的命令行工具,在程序中定义好需要的参数,argparse将弄清楚如何解析sys.argv中的参数......
  • [转载]python求 任意两平面的夹角
    1importmath#引入math模块计算角度用2classpoint(object):#定义空间点类3"""docstringforpoint"""4def__init__(self,x,y,z,name):5......
  • python开发简单的命令行工具
    介绍Python模块argparse,这是一个命令行选项,参数和子命令的解释器,使用该模块可以编写友好的命令行工具,在程序中定义好需要的参数,argparse将弄清楚如何解析sys.argv中的参......
  • python入门之最大值及删除元素练习
    #练习1:#将列表[54,25,12,42,35,17]中,#大于30的数字存入另一个列表中#并画出内存图list01=[54,25,12,42,35,17]list02=[]#......