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判断前者是不是完全包含后者,返回布尔值
    • 8、update 更新
  • 总结

集合 (set)

1、由不同的元素组成,用{ }大括号括起来,用,逗号隔开

2、无序的

3、集合中的元素必须是比可变类型

4、集合会自动去重

例如:s = {1,2,3,4,5,6} #这就是一个集合

5、合集是可变的 但是可以通过参数frozenset变成不可变的集合

s = {1,'2',3,4,5,6}
print(s) #{'2', 1, 3, 4, 5, 6}
a = frozenset(s) #不可变
print(a) #frozenset({'2', 1, 3, 4, 5, 6})

一 、合集的一些常用命令

1、set 定义合集

s = set('adam')
print(s) #{'m', 'a', 'd'}

可以看到输出结果是 乱序的 而且 已经去重了,并且它已经把原来的字符串 打散到了最小单位

2、add 添加元素

s = {1,2,3,4,5,6}
s.add('3') #添加了一个str类型的 3
print(s) #{1, 2, 3, 4, 5, 6, '3'}
s.add(('4', 'a', 'b', 'c'))
print(s) #{1, 2, 3, 4, 5, 6, ('4', 'a', 'b', 'c'), '3'}

1、如果添加的是的集合里面原本就含有的元素,那么就会被自动去重

2、被添加的元素是 被乱序放入的 也就是说集合本身是乱序的

3、如果被添加的是 多个元素 那么 集合会把他们视为一个元素 打包插入,只有元祖可以插入,列表和字典不行

3、clear 清空

s = {1,2,3,4,5,6}
s.clear()
print(s) #set()

4、pop 随机删除一个元素

s = {1,2,3,4,5,6,7}
s.pop()
print(s) #{2, 3, 4, 5, 6, 7}

5、remove 指定删除

s = {1,2,3,4,5,6}
s.remove(3)
print(s) #{1, 2, 4, 5, 6}

PS:找不到匹配要删除的字符就会报错

6、discard 指定删除

s = {1,2,3,4,5,6}
s.discard(7)
print(s) #{1, 2, 3, 4, 5, 6}

PS:找不到匹配要删除的字符不会报错

二、关系运算

1、交集 找到两个集合相同的元素

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s&s1) #{1, 3, 'd', 'm'}
print(s.intersection(s1)) #{1, 3, 'd', 'm'}

& 是运算符号, intersection 是运算命令他们的结果是一样的

2、并集 合并两个集合

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s|s1) #{1, 2, 3, 'm', '2', 'd', 'a'}
print(s.union(s1)) #{1, 2, 3, 'm', '2', 'd', 'a'}

| 竖是运算符号,union 是运算命令他们的结果是一样的

3、差集 保留前者与后者不同的元素 去除相同的元素

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s - s1) #{'a', 2}
print(s1.difference(s)) #{'2'}

- 减号是运算符号,difference 是运算命令他们的结果是一样的

由于前后两次 两个 集合被比较的 关系对调了 所以 结果两次输出的结果也不同

4、交叉补集 只保留两者不同的部分

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s ^ s1) #{2, '2', 'a'}
print(s1.symmetric_difference(s)) #{2, '2', 'a'}

^ 是运算符号,symmetric_difference是运算命令他们的结果是一样的

5、isdisjoint 判断是否有交集返回布尔值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
s2 = {15,22}
print(s1.isdisjoint(s2)) #True
print(s1.isdisjoint(s)) #False

没有交集就返回 True 有交集就返回False

6、issubset判断后者是否包含前者 返回布尔值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
print(s1.issubset(s2)) #False
print(s1.issubset(s)) #True

如果后者包含前者 则返回 True 如果后者不完全包含前者 则返回 False

7、issuperset判断前者是不是完全包含后者,返回布尔值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
s3 ={1,2,3,'m', 'a', 'd'}
print(s.issuperset(s2)) #False
print(s.issuperset(s1)) #True
print(s.issuperset(s3)) #True

前者完全包含后者 则 返回 True 没有完全包含后者则返回False 前后两者相等也是True

8、update 更新

s = {1,2,3,'m', 'a', 'd'}
s3 ={1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
s.update(s3)
print(s) #{1, 2, 3, 'a', 'm', 'd'}
print(s3) #{1, 2, 3, 'd', 'm', 'a'}
s1.update(s2)
print(s1) #{1, 2, 3, 'm', 22, 'd', 15}
print(s2) #{1, 22, 15}

把后者的元素 更新到前者内

PS:

访问方式

直接 访问:数字

顺序访问:字符串、列表、元祖

映射(keys):字典

字典的查询速度最快 但是字典占内存会比较高

存放元素个数:

容器类(存放多个值):列表、元祖、字典

原子类(只能存放一个值):数字、字符串

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python 实现集合Set的示例

    Python的集合set原理 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. class Array(object): def __init__(self, size=32, init=None): self._size = size self._items = [init] * self._size def __getitem__(self, ind

  • Python 集合之set详解

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

  • Python3 集合set入门基础

    集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. 集合.是字典的表亲 {}并不是字典的特权 集合的特点: 1 具有唯一性 2 不支持索引 3 与字典相同,也是无序的 创建格式: parame = {value01,value02,...} 或者 set(value) 创建方法 num1 = {1,2,3,4} num2 = set(['q','w','e

  • python基础之set集合详解

    一.set 集合 集合(set)是一个无序的不重复元素序列. 可以使用大括号 {} 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. 二.创建集合 print({"1", "2", "3"})  # {'2', '3', '1'} print(set("123"))  # {'2', '3', '1'} print(set((1, 2, 3)))  #

  • Python set集合类型操作总结

    Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替) 小例子 1.如果我要在许多列表中找出相同的项,那么用集合是最好不过的了,用集合只用一行就可以解决 复制代码 代码如下: x & y & z # 交集 2.去重 复制代码 代码如下: >>> lst = [1,2,3,4,1] >>> print list(set(lst)) [1, 2, 3, 4] 用法 注意se

  • 详细介绍Python中的set集合

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

  • Python学习之集合的常用方法总结

    目录 什么是集合? 集合与列表的区别 集合的创建方法 集合的增删改 add函数 update函数 remove函数 clear函数 del方法删除集合 关于集合的重要说明 获取两个集合交.并.差集的函数 difference()函数 intersection()函数 union()函数 判断两个集合中是否存在相同的元素 isdisjoint()函数 拓展-集合的‘&.|.-运算符’ 什么是集合? 集合并不是一种数据处理类型,而是一种中间类型. 集合(set)是一个无序.不重复的元素序列 经常被用

  • 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学习笔记之集合的概念和简单使用示例

    本文实例讲述了Python学习笔记之集合的概念和简单使用.分享给大家供大家参考,具体如下: 集合 概念解释:一个包含唯一元素的可变和无序的集合数据类型.集合的一个用途是快速删除列表中的重复项. numbers = [1, 2, 6, 3, 1, 1, 6] unique_nums = set(numbers) print(unique_nums) # {1, 2, 3, 6} 支持 in 运算符, 使用 add 方法将元素添加到集合中,并使用 pop 方法删除元素(会随机删除一个元素) frui

  • Python学习思维导图(必看篇)

    无意间碰到的一个大神整理的Python学习思维导图,感觉对初学者理清学习思路大有裨益,非常感谢他的分享. 14 张思维导图 基础知识 数据类型 序列 字符串 列表 & 元组 字典 & 集合 条件 & 循环 文件对象 错误 & 异常 函数 模块 面向对象编程 以上这篇Python学习思维导图(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 快速入门python学习笔记

    本篇不是教给大家如何去学习python,有需要详细深入学习的朋友可以参阅:Python基础语言学习笔记总结(精华)本文通过一周快速学习python入门知识总计了学习笔记和心得,分享给大家. ##一:语法元素 ###1.注释,变量,空格的使用 注释 单行注释以#开头,多行注释以''开头和结尾 变量 变量前面不需要声明数据类型,但是必须赋值 变量命名可以使用大小写字母,数字和下划线的组合,但是首字母只能是大小写字母或者下划线,不能使用空格 中文等非字母符号也可以作为名字 空格的使用 表示缩进关系的空

  • python学习——内置函数、数据结构、标准库的技巧(推荐)

    我作为一名python初学者,为了强化记忆有必要把看过的一些优秀的文章中一些技巧通过notebook的方式练习一次.我认为这么做有几个优点:一来加深印象:二来也可以将学习过的内容保存方便日后查阅:第三也可以培养我写博的习惯(一直都没那个习惯) jupyter notebook格式的文件github下载: 身为程序员除了需要具备解决问题的思路以外,代码的质量和简洁性也很关键,今天又学习到了一些觉得自己很高级的内容跟大家分享,内容包括: Python内置函数开始 Python对数据结构的天然支持 P

  • 计算机二级python学习教程(2) python语言基本语法元素

    上一篇:计算机二级Python学习笔记(一) 其实昨天Python并没有安装成功,打开就报错: 于是今天先解决这个问题,搜了一下api-ms-win-crt-process- 1-1-0.dll丢失,感谢这位老铁的博客解决了我的问题[api-ms-win-crt-process-l1-1-0.dll 丢失的处理,个人觉得完美],分享给大家,如果因为系统丢失dll文件报错可以借鉴一下. 完美运行,继续学习. 第2章 Python语言基本语法元素 2.1 程序的格式框架 缩进:Tab键或4个空格(建

  • Python学习笔记之For循环用法详解

    本文实例讲述了Python学习笔记之For循环用法.分享给大家供大家参考,具体如下: Python 中的For循环 Python 有两种类型的循环:for 循环和 while 循环.for 循环用来遍历可迭代对象. 可迭代对象是每次可以返回其中一个元素的对象, 包括字符串.列表和元组等序列类型,以及字典和文件等非序列类型.还可以使用迭代器和生成器定义可迭代对象 For 循环示例: # iterable of cities cities = ['new york city', 'mountain

  • python学习之可迭代对象、迭代器、生成器

    Iterable – 可迭代对象 能够逐一返回其成员项的对象. 可迭代对象的例子包括所有序列类型 (例如 list, str 和 tuple) 以及某些非序列类型例如 dict, 文件对象以及定义了__iter__()方法或是实现了序列语义的__getitem__() 方法的任意自定义类对象. 可迭代对象可用于 for 循环以及许多其他需要一个序列的地方(zip().map() -).当一个可迭代对象作为参数传给内置函数 iter() 时,它会返回该对象的迭代器.这种迭代器适用于对值集合的一次性

  • Python学习开发之图形用户界面详解

    目录 1. 丰富的图形开发界面库 1.1 tkinter 2 wxPython 概述 2.1 安装 wxPython 3 Jython 3.1 Jython 安装 3.2 在 Eclipese 中配置 Jython 4. 结语 1. 丰富的图形开发界面库 图形用户界面(Graphical User Interface,GUI),Python 提供了丰富的图形开发界面库(Python GUI): 1.1 tkinter tkinter 模块(TK接口)是 Python 的标准 TK GUI 工具包

随机推荐