Python集合set的交集和并集操作方法

目录
  • 一、交集操作
    • 1.使用intersection()求交集
    • 2.使用位运算&符求交集
    • 3.intersection_update()方法
    • 4.使用intersection()方法
  • 二、并集操作
    • 1.使用union()求并集
    • 2.使用逻辑或|求并集
    • 3.使用update()求并集,只能作用域可变集合

前言:

集合这种数据类型和我们数学中所学的集合很是相似,数学中堆积和的操作也有交集,并集和差集操作,python集合也是一样。

一、交集操作

1.使用intersection()求交集

可变集合和不可变集合求交集的时候,用什么集合调用交集方法,返回的结果就是什么类型的集合。

set7 = {'name', 18, 'python2', 'abc'}
set8 = frozenset({'name', 19, 'python3', 'abc'})
res = set7.intersection(set8)  # {'abc', 'name'} <class 'set'>
print(res, type(res))
res = set8.intersection(set7)  # frozenset({'abc', 'name'}) <class 'frozenset'>
print(res, type(res))

返回结果:

{'abc', 'name'} <class 'set'>
frozenset({'abc', 'name'}) <class 'frozenset'>

2. 使用位运算&符求交集

set5 = {'name', 18, 'python2', 'abc'}
set6 = {'name', 19, 'python3', 'abc'}
set7 = {'name', 18, 'python2', 'abc'}
set8 = frozenset({'name', 19, 'python3', 'abc'})
res = set5 & set6
print(res, type(res))
res = set7 & set8
print(res, type(res))
res = set8 & set7  # 谁在前,返回结果就和谁是同样类型的集合
print(res, type(res))

返回结果:

{'abc', 'name'} <class 'set'>
{'abc', 'name'} <class 'set'>
frozenset({'abc', 'name'}) <class 'frozenset'>

3.intersection_update()方法

使用此方法计算出交集之后会把结果赋值给原有的集合,属于一种更改,所以不适用于不可变集合

set7 = {'name', 18, 'python2', 'abc'}
set8 = frozenset({'name', 19, 'python3', 'abc'})
res = set7.intersection_update(set8)  # 没有返回值
print(set7, type(set7))  # 没有返回值,直接打印被赋值集合
res = set8.intersection_update(set7)  # 不可变集合没有intersection_update方法
print(res, type(res))

返回结果:

{'abc', 'name'} <class 'set'>
AttributeError: 'frozenset' object has no attribute 'intersection_update'

4.使用intersection()方法

使用此方法求集合和其他数据类型的交集时intersection()会把其他数据类型直接转为集合。

str1 = 'python'
list1 = [1, 2, 3, 18]
tup1 = (1, 2, 3, 18)
dict1 = {'name': 'Tom', 'age': 18, 'love': 'python'}
set10 = {'name', 18, 'python', 'abc', 'p'}
print(set10.intersection(str1))  
# 返回:{'p'}而不是{'python'},因为str1转成集合为:{'y', 't', 'p', 'o', 'n', 'h'}
 
print(set10.intersection(list1))
print(set10.intersection(tup1))
print(set10.intersection(dict1))

返回结果:

{'p'}
{18}
{18}
{'name'}

二、并集操作

1.使用union()求并集

set5 = {'name', 18, 'python2', 'abc'}
set6 = {'name', 19, 'python3', 'abc'}
res = set5.union(set6)
print(res, type(res))

返回结果:

{'python2', 'abc', 18, 19, 'python3', 'name'} <class 'set'>

2.使用逻辑或 | 求并集

set5 = {'name', 18, 'python2', 'abc'}
set6 = {'name', 19, 'python3', 'abc'}
res = set5 | set6
print(res, type(res))

返回结果:

{'abc', 'python2', 'name', 'python3', 18, 19} <class 'set'>

3.使用update()求并集,只能作用域可变集合

set5 = {'name', 18, 'python2', 'abc'}
set6 = {'name', 19, 'python3', 'abc'}
res = set5.update(set6)  # 有黄色波浪线表示这个函数没有返回值
print(set5, type(set5))

返回结果:

{'python2', 'python3', 18, 'abc', 19, 'name'} <class 'set'>

到此这篇关于Python集合set的交集和并集操作方法小的文章就介绍到这了,更多相关Python集合set内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python集合的创建、添加及删除操作示例

    本文实例讲述了python集合的创建.添加及删除操作.分享给大家供大家参考,具体如下: 集合时无序可变的序列,集合中的元素放在{}内,集合中的元素具有唯一性. 集合中只能包含数字.字符串.元组等不可变的类型数据(或者说可哈希),而不能包含列表.字典.集合等可变的类型数据 1.集合的创建 方法一:把集合直接赋值给一个变量 >>> num={1,2,3,4} 方法二:使用range对象 >>> a=set(range(1,4)) >>> a {1, 2,

  • Python集合的增删改查操作

    目录 1.集合新增集合元素 2.删除可变集合元素 3.修改可变集合 4.集合元素查询方法 前言: 集合分为可变集合和不可变集合两种,所以对其的增删改查操作要看集合的类型来决定.不可变的数据当然不能增删改,只能查询,可变集合则限制稍微少点.除此之外集合是无需的,所以也没有办法直接通过下标来查询,同时集合中的元素没有自己的键,也不能使用键来查询,那么应该如何操作集合这种数据类型呢?下面给大家列举出来一些操作方法. 1.集合新增集合元素 set1 = {'name', 19, 'python'} se

  • python集合删除多种方法详解

    这篇文章主要介绍了python集合删除多种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 删除指定的元素 A={'a','c','b','d','e'} print("原集合:",A) A.remove('a') # 不存在会报错 print("删除a后:",A) A.discard('b') # 不存在不会报错 print("删除b后:",A) A.pop() print("

  • python集合的新增元素方法整理

    我们可以把全体人数当作一个集合,想要往其中加入新人有不同的增加方式.可以一周增加一次,也可以集中到月底一起加入集体.我们今天所要讲的在python集合中,添加元素的两种方法就可以这样理解.一个是整体加入,另一个是拆分加入,下面我们一起看看具体的使用吧. 集合的添加有两种方式,分别是add和update.但是它们在添加元素时是由区别的: add()方法 把要传入的元素作为一个整体添加到集合中,如: >>> s=set('one') >>> s {'e', 'o', 'n'

  • C++程序的五大内存分区实力详解

    目录 1.栈内存区 1.1.调用函数时通过栈来传递函数的参数值 1.2.线程占用的栈内存是有上限的 2.堆内存区 3.全局/静态内存区 4.文字常量区 5.程序代码区 总结 C++程序在运行时所占用的内存区域,一般可分为栈内存区.堆内存区.全局/静态内存区.文字常量内存区及程序代码区5大分区: 下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区. 1.栈内存区 栈内存区是我们用的最多的分区,只要有函数的地方都会使用到这个分区.栈分区是用来存放函数参数及函数

  • python 列表、字典和集合的添加和删除操作

    在python中,元组不可变,只能查询不能修改,列表.字典和集合的基本操作,各不相同,下面就来比较一下它们的添加和删除操作吧. 添加 一.列表 1."+"号 #两个数组相加,生成一个大数组 a = [1, 2, 3] b = [4, 5, 6] c = a + b print(c) #输出结果:[1, 2, 3, 4, 5, 6] 2.extend方法 #只接受列表参数并将参数的每个元素都添加到原有的列表中 a = [1, 2, 3] b = [4, 5, 6] a.extend(b)

  • Python集合set的交集和并集操作方法小

    目录 一.交集操作 1.使用intersection()求交集 2.使用位运算&符求交集 3.intersection_update()方法 4.使用intersection()方法 二.并集操作 1.使用union()求并集 2.使用逻辑或|求并集 3.使用update()求并集,只能作用域可变集合 前言: 集合这种数据类型和我们数学中所学的集合很是相似,数学中堆积和的操作也有交集,并集和差集操作,python集合也是一样. 一.交集操作 1.使用intersection()求交集 可变集合和

  • Python集合set的交集和并集操作方法

    目录 一.交集操作 1.使用intersection()求交集 2.使用位运算&符求交集 3.intersection_update()方法 4.使用intersection()方法 二.并集操作 1.使用union()求并集 2.使用逻辑或|求并集 3.使用update()求并集,只能作用域可变集合 前言: 集合这种数据类型和我们数学中所学的集合很是相似,数学中堆积和的操作也有交集,并集和差集操作,python集合也是一样. 一.交集操作 1.使用intersection()求交集 可变集合和

  • JS实现的集合去重,交集,并集,差集功能示例

    本文实例讲述了JS实现的集合去重,交集,并集,差集功能.分享给大家供大家参考,具体如下: 1. js 实现数组的集合运算 为了方便测试我们这里使用nodejs,代码如set_operation.js function array_remove_repeat(a) { // 去重 var r = []; for(var i = 0; i < a.length; i ++) { var flag = true; var temp = a[i]; for(var j = 0; j < r.lengt

  • python集合比较(交集,并集,差集)方法详解

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-l

  • python 集合 并集、交集 Series list set 转换的实例

    set转成list方法如下: list转成set方法如下: s = set('12342212')                                                      l = ['12342212']  print s    # set(['1', '3', '2', '4'])                                    s = set(l[0])  l = list(s)                             

  • Python集合操作方法详解

    集合是无序的,天生不重复的数据组合,它的作用如下: 去重,即:把一个列表变成集合,就去重了 关系测试,即:测试两组集合的交集.并集和差集等 一.集合常用方法总结 二.定义 1.语法 >>> name_1 = [1,2,3,4,7,8,7,10] #把列表转换为集合 >>> name_1 = set(name_1) #转换后,去重 >>> print(name_1,type(name_1)) {1, 2, 3, 4, 7, 8, 10} <clas

  • Python求两个list的差集、交集与并集的方法

    本文实例讲述了Python求两个list的差集.交集与并集的方法.分享给大家供大家参考.具体如下: list就是指两个数组之间的差集,交集,并集了,这个小学数学时就学过的东西,下面就以实例形式对此加以分析. 一.两个list差集 如有下面两个数组: a = [1,2,3] b = [2,3] 想要的结果是[1] 下面记录一下三种实现方式: 1. 正常的方式 复制代码 代码如下: ret = [] for i in a:     if i not in b:         ret.append(

  • 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(s

  • python获得两个数组交集、并集、差集的方法

    本文实例讲述了python获得两个数组交集.并集.差集的房部分.分享给大家供大家参考.具体如下: 1. 获取两个list 的交集 #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for val in a if val in b] print tmp #[2, 5] #方法二 print list(set(a).intersection(set(b))) 2. 获取两个list 的并集 print list(set(a).union(set(b))) 3. 获取两个

  • Python实现两个list求交集,并集,差集的方法示例

    本文实例讲述了Python实现两个list求交集,并集,差集的方法.分享给大家供大家参考,具体如下: 在python中,数组可以用list来表示.如果有两个数组,分别要求交集,并集与差集,怎么实现比较方便呢? 当然最容易想到的是对两个数组做循环,即写两个for循环来实现.这种写法大部分同学应该都会,而且也没有太多的技术含量,本博主就不解释了.这里给大家使用更为装bility的一些方法. 老规矩,talk is cheap,show me the code #!/usr/bin/env pytho

随机推荐