首页 > 编程语言 >【Python基础】set(集合)

【Python基础】set(集合)

时间:2024-01-10 12:12:51浏览次数:33  
标签:set Python s2 s1 print 集合 msg

简介

集合跟我们学的列表有点像,也是可以存放一堆数据,不过集合有几个独特的特点,令其在整个Python语言中占有一席之地。
相当于只有键没有值的字典(键则是集合的数据)。

基本操作

特点

* 里面的元素不可变,代表不能存储一个list、dict、在集合中,字符串、数字、元组等不可变类型可以存。
* 天生自带去重,在集合中没有办法存储重复的元素。
* 无序、不像列表一样通过索引来标记在列表中的位置,元素是无序的,集合的元素无先后之分,如集合{2,3,4}和{3,2,4}算作相同集合。

作用

我们用集合主要做两件事: 去重和关系运算

基本语法

创建集合

注意也是{ },但不是dict,不是k-v结构
集合名 = {key,....}
集合名 = set()
集合名 = set(可迭代对象)
由于集合是天生去重,重复的值你根本存不进去

msg ={"小C学安全","Python","Java"}
msg1 = set("小C学安全")
msg2 = set(["小C学安全","Python","Java"])
print(msg,msg1,msg2)

msg ={"小C学安全","Python","Java","Python"}
print(msg)

{'Python', '小C学安全', 'Java'}

列表去重

a = [1,2,3,2,1,"Python","小C学安全","Python"]
print(a)
print(set(a))
print(list(set(a)))

增删改查

增:
集合名.add(元素)

msg={1, 2, '小C学安全', 3, 'Python'}
msg.add("哈哈哈哈")
print(msg)

删除:

  集合.pop() # 随机删除一个值,并返回该值
  集合.remove(3) # 删除3这个元素,若3不存在,报错
  集合.discard(3) # 删除指定的值,若该值不存在,不报错 None
  集合.clear() # 清空
msg={1, 2, '小C学安全', 3, 'Python'}
msg.pop()
print(msg)
#{2, 3, 'Python', '小C学安全'}
msg.remove(2)
print(msg)
#{1, 3, '小C学安全', 'Python'}
msg.discard(2)
print(msg)
#{1, 3, '小C学安全', 'Python'}
msg.clear()
print(msg)
#{}

查:

msg={1, 2, '小C学安全', 3, 'Python'}
print("小C学安全" in msg)
#结果为True

关系语法

交集 :( &;intersection) 返回共同元素

1 s1 = {1, 2, 3}
2 s2 = {2, 3, 4}
3 s3 = s1 & s2 # {2, 3}

并集: ( |;union ) 返回不重复元素

1 s1 = {1, 2, 3}
2 s2 = {2, 3, 4}
3 s3 = s1 | s2 # {1, 2, 3, 4

差集(补集):(-;difference)返回只属于其中之一的元素

1 s1 = {1, 2, 3}
2 s2 = {2, 3, 4}
3 s1 - s2 # {1} 属于s1但不属于s2

对称差集:(^ ;symmetric_difference )返回不相同的的元素

1 s1 = {1, 2, 3}
2 s2 = {2, 3, 4}
3 s3 = s1 ^ s2 # {1, 4} 等同于(s1-s2 | s2-s1)

子集<:判断一个集合的所有元素是否完全在另一个集合中 # issubset

超集>:判断一个集合是否具有另一个集合的所有元素 # issuperset

集合推导式

msg={1, 2, 66, 3, 88}
print({i+1 for i in msg})
print({i+1 for i in msg if i==66})

{2, 67, 3, 4, 89}
{67}

标签:set,Python,s2,s1,print,集合,msg
From: https://www.cnblogs.com/fuchangjiang/p/17956208

相关文章

  • python通过snap7通讯西门子PLC仿真配置
     一、资料链接:https://pan1.baidu.com/s/1-Dt7yc8e4zEVC5ySqXMLXQ?pwd=1010 提取码:1010 --来自百度网盘超级会员V6的分享,俺的网盘到24年11月,过期自己网上搜吧二,准备工作1、安装python我用的是32位的,因为期间报了个这个错误,调试了好几次解释器才解决编辑正常安装python就行,很简......
  • 【Python基础】tuple(元组)
    简介由一系列变量组成的不可变的序列容器。俗称不可变的列表,又被称为只读列表,元组也是python的基本数据类型之一,用小括号括起来,里面可以放任何的数据类型,查询可以,循环也可以,切片也可以,但就是不能修改。元组中如果只有一个元素,一定要添加一个逗号,否则就不是元组备注:这里元组的不......
  • 快乐学Python,数据分析之获取数据方法「公开数据或爬虫」
    学习Python数据分析,第一步是先获取数据,为什么说数据获取是数据分析的第一步呢,显而易见:数据分析,得先有数据,才能分析。作为个人来说,如何获取用于分析的数据集呢?1、获取现成的数据集获取数据集的第一种方式,就是获取行业上已经有人整理好的数据集。目前大数据行业持续火爆,数据本身已......
  • Python操作XML文件一文通
    我们经常需要解析用不同语言编写的数据,Python提供了许多第三方库来解析或拆分用其他语言编写的数据,今天我们来学习下PythonXML解析器的相关功能。下面一起来看看吧~什么是XML?XML是可扩展标记语言,它在外观上类似于HTML,但XML用于数据表示,而HTML用于定义正在使用的数据。XM......
  • python diango后端支持运行脚本+vue前端支持脚本运行
    #使用Python内置的subprocess模块来执行Python脚本#使用注意:#1,依赖包需要提前导入至脚本中#2,script_path变量是脚本得绝对路径#3,filename变量是脚本得名称#搭配vue页面使用#想法:页面支持导入,编辑,执行脚本#导入:默认指定路径下,需要填......
  • 【Python基础】dict(字典)
    简介介绍dictionary(字典)是除列表以外Python之中最灵活的数据类型字典同样可以用来存储多个数据通常用于存储描述一个物体的相关信息和列表的区别列表是有序的对象集合字典是无序的对象集合字典用{}定义字典特性*字典使用键值对存储数据,键值......
  • # yyds干货盘点 # 盘点一个AI都无法解决的Python基础题目(下篇)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【大侠】问了一个Pandas实战的问题,一起来看看吧。上一篇文章说到,看上去AI给的答案,似乎让【大侠】不满意,遂来白银交流群问问大佬们。这一篇文章,我们一起来看看其他大佬给的代码。二、实现过程前面的文章中,我们看到了【瑜亮老师】和......
  • python第三节:Str字符串类型(1)
    第二节:Str字符串类型python中处理文本数据是用str类型,不像其他语言区分字符和字符串,统一使用str类型。str在创建后是不可变的。在python中字符类型相当于长度是1的字符串类型。以下三种方式包裹的字符都算作字符串:单引号:'允许包含有"双"引号'双引号:"允许嵌入'单'引号"三重......
  • python通过RS485、Modbus协议读取/修改仪表数据
    目标python通过RS485的Modbus协议读取仪表相应的寄存器数据。准备工作软件安装第三方库:serial、pyserial、modbus_tkpipinstallserialpipinstallpyserialpipinstallmodbus_tk硬件一根USB转RS485的转接线(电脑本身不带RS485接口时需要)一个带Modbus通讯的仪表(例子中使用的时一......
  • python系列教程218——生成器表达式
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......