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学习之集合set

    目录 集合 (set) 一 .合集的一些常用命令 1.set 定义合集 2.add 添加元素 3.clear 清空 4.pop 随机删除一个元素 5.remove 指定删除 6.discard 指定删除 二.关系运算 1.交集 找到两个集合相同的元素 2.并集 合并两个集合 3.差集 保留前者与后者不同的元素 去除相同的元素 4.交叉补集 只保留两者不同的部分 5.isdisjoint 判断是否有交集返回布尔值 6.issubset判断后者是否包含前者 返回布尔值 7.issuperset判断前

  • Python 集合之set详解

    目录 引言 集合的定义 集合常用操作 集合添加元素 集合移除元素 集合统计.清空元素 集合元素获取(遍历) 集合之间的运算 集合差运算 - 集合并运算 | 集合交运算 & 集合异或运算 ^ 应用场景 普通for循环去重 利用集合简单去重 去重保持原来的顺序 总结 引言 set(集合)虽然用的很少,但它是一个无序的不重复元素序列,用来简单的去重挺快的. 集合的定义 set(集合) 与列表类似,不同之处在于集合的 元素不重复 集合和字典一样也是用 {} 定义,但元素之间使用 , 分隔,或者使用 se

  • python3中set(集合)的语法总结分享

    介绍 set 顾明思义,就是个集合,集合的元素是唯一的,无序的.一个{ }里面放一些元素就构成了一个集合,set里面可以是多种数据类型(但不能是列表,集合,字典,可以是元组) 集 合 是 一 个 无 序 不 重 复 元素 的 集 . 基 本 功 能 包 括 关 系 测 试 和 消 除 重 复 元 素 . 集 合 对 象 还 支 持 union( 联 合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算. 大括号或 s

  • 详细介绍Python中的set集合

    目录 Python中的set集合 一.集合是什么? 二.set集合怎么用? 1.创建set集合 2.删除set集合 3.访问set集合元素 4.删除集合中的元素 5.向集合中添加元素 三.set集合的交并补 1.交集 2.并集 3.差集 四.set中的其他方法 五.frozenset 集合 Python中的set集合 一.集合是什么? 集合是什么呢?相信读者朋友们哪怕是没有用过集合这个数据类型.也一定在数学课堂上听过集合这个名词.数学中的集合是一个基本概念,说白了一堆不重复的数字可以组成一个集合

  • 详解python的集合set的函数

    目录 常用 查询 增加 删除 交.并.补.对称差 交集 并集 补集 对称差 其他 总结 s={ x1,x2,x3.....}: 集合有自动去重的功能,而且可以进行交并补运算,而且集合是无序的,每次打印的结果不一样,故不可以用元素下标进行取值.因无法取值,故无法对特定的值进行修改.但是可以进行删除操作. s=set():表示创建一个空的集合.注意:s={}表示创建一个空的字典. 常用 查询 x in s,s为一个集合,返回bool类型,判断x是否在集合s中. 增加 s.add(“x”):将“x”添

  • 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 数据类型--集合set

    目录 一.定义 二.操作 三.运算 一.定义 集合中的元素是无序的.唯一的.不可变的类型.集合是一个特殊的列表,可以对数据去重. lists = [1,3,5,7,3,4,6,2,7,9] print(set(lists)) 使用大括号{}或set()函数吧数据集合在一起. set()中的参数可以是元组.字符串.列表,还可以是一个集合.这个参数只要是一个序列即可. 创建一个空集合必须用set(),不能使用大括号.{}是用来定义空字典的. 二.操作 add(),把要传入的元素作为一个整体添加到集合

  • 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集合操作方法详解

    集合是无序的,天生不重复的数据组合,它的作用如下: 去重,即:把一个列表变成集合,就去重了 关系测试,即:测试两组集合的交集.并集和差集等 一.集合常用方法总结 二.定义 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

随机推荐