Python set集合 - Python零基础入门教程

目录

  • 一.set 集合简介
  • 二.set 集合常用函数
  • 三.set 集合运算符
  • 四.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

在 Python 变量中除了以前文章所提到的整形 int / 浮点数 float / 布尔值 bool / 列表 list / 字典 dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合 set。

一.set 集合简介

Python set 集合使用大括号 { } 表示,与字典 dict 不同的是 set 集合并没有 key / value 键值对,主要有以下两个特点:

  • 1.元素不允许重复;
  • 2.set 不记录元素的添加顺序,即是无序的,和字典类似;
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python set集合.py
@Time:2021/04/04 11:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 创建一个空集合set
set_a = set()
# 打印集合set
print(set_a)
# 查看类型
print(type(set_a))
print("***"*20)# 创建一个集合
set_b = {"猿说python",False}
print(type(set_b))
print(set_b)
print("***"*20)# 创建一个字典
dict_b = {"name":"猿说python","url":"www.codersrc.com"}
print(type(dict_b))
print(dict_b)'''
输出结果:set()
<class 'set'>
************************************************************
<class 'set'>
{False, '猿说python'}
************************************************************
<class 'dict'>
{'name': '猿说python', 'url': 'www.codersrc.com'}
'''

代码分析:观察上面代码,虽然字典 dict 和 集合 set 都是由 {} 构成,注意字典由键值对 key / value 构成,而集合确是由一个一个数据构成,和列表 list 的元素类似!

二.set 集合常用函数

  • add — 向 set 集合中添加元素;
  • remove — 删除元素,如果集合中不包含被删除的元素,remove() 方法会报出 KeyError 异常;
  • discard — 删除元素,如果集合中不包含被删除的元素,不会有任何提示或者 异常;
  • clear — 就是清空白 set 集合;
  • copy — 拷贝一个集合;
  • difference— 返回多个集合的差集;
  • difference_update — 移除集合中的元素,该元素在指定的集合也存在;
  • intersection — 返回集合的交集,不改变集合本身,而是返回两个集合的交集;
  • intersection_update — 返回集合的交集,会通过交集运算改变第一个集合;
  • isdisjoint — 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False;
  • issubset — 判断指定集合是否为该方法参数集合的子集;
  • issuperset — 判断该方法的参数集合是否为指定集合的子集;
  • pop — 随机移除元素;
  • symmetric_difference — 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中;
  • union — 返回两个集合的并集;
  • update — 用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略;
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python set集合.py
@Time:2021/04/04 11:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 使用花括号构建set集合
c = {'乔峰',"段誉","虚竹","天龙八部","射雕英雄传"}
# 添加元素
c.add("天山姥姥")
c.add(6)
print("c集合的元素个数为:" , len(c))
print(c)
# 删除指定元素
c.remove("天山姥姥")
print(c)
print("c集合的元素个数为:" , len(c))
print("***"*20)# 判断是否包含指定字符串
print("c集合是否包含'乔峰'字符串:" , ("乔峰" in c)) # 输出True
print("***"*20)# 使用set()函数(构造器)来创建set集合
movies = set()
movies.add("天龙八部")
movies.add("射雕英雄传")
print("movies集合的元素:" , movies)
# issubset()方法判断是否为子集合
print("movies集合是否为c的子集合?", movies.issubset(c)) # 输出False# issuperset()方法判断是否为父集合
# issubset和issuperset其实就是倒过来判断
print("c集合是否完全包含books集合?", c.issuperset(movies)) # 输出False
# 用c集合减去books集合里的元素,不改变c集合本身
result1 = c - movies
print(result1)# difference()方法也是对集合做减法,与用-执行运算的效果完全一样
result2 = c.difference(movies)
print(result2)# 用c集合减去books集合里的元素,改变c集合本身
c.difference_update(movies)
print("c集合的元素:" , c)# 删除c集合里的所有元素
c.clear()
print("c集合的元素:" , c)
print("***"*20)# 直接创建包含元素的集合
d = {"python面向对象", 'python基础', 'python爬虫'}
print("d集合的元素:" , d)# intersection()方法也是获取两个集合的交集,与用&执行运算的效果完全一样
inter2 = d.intersection(movies)
print(inter2)
# 计算两个集合的交集,改变d集合本身
d.intersection_update(movies)
print("d集合的元素:" , d)
print("***"*20)# 将range对象包装成set集合
e = set(range(5))
f = set(range(3, 7))
print("e集合的元素:" , e)
print("f集合的元素:" , f)# 计算两个集合的并集,不改变e集合本身
un = e.union(f)
print('e和f执行并集的结果:', un)
# 计算两个集合的并集,改变e集合本身
e.update(f)
print('e集合的元素:', e)'''
输出结果:c集合的元素个数为: 7
{'天龙八部', 6, '虚竹', '乔峰', '段誉', '天山姥姥', '射雕英雄传'}
{'天龙八部', 6, '虚竹', '乔峰', '段誉', '射雕英雄传'}
c集合的元素个数为: 6
************************************************************
c集合是否包含'乔峰'字符串: True
************************************************************
movies集合的元素: {'天龙八部', '射雕英雄传'}
movies集合是否为c的子集合? True
c集合是否完全包含books集合? True
{'乔峰', '段誉', 6, '虚竹'}
{'乔峰', '段誉', 6, '虚竹'}
c集合的元素: {6, '虚竹', '乔峰', '段誉'}
c集合的元素: set()
************************************************************
d集合的元素: {'python爬虫', 'python基础', 'python面向对象'}
set()
d集合的元素: set()
************************************************************
e集合的元素: {0, 1, 2, 3, 4}
f集合的元素: {3, 4, 5, 6}
e和f执行并集的结果: {0, 1, 2, 3, 4, 5, 6}
e集合的元素: {0, 1, 2, 3, 4, 5, 6}
'''

三.set 集合运算符

  • <=:相当于调用 issubset() 方法,判断前面的 set 集合是否为后面的 set 集合的子集合。
  • >=:相当于调用 issuperset() 方法,判断前面的 set 集合是否为后面的 set 集合的父集合。
  • :相当于调用 difference() 方法,用前面的 set 集合减去后面的 set 集合的元素。
  • &:相当于调用 intersection() 方法,用于获取两个 set 集舍的交集。
  • ^:计算两个集合异或的结果,就是用两个集合的并集减去交集的元素。
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python set集合.py
@Time:2021/04/04 11:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""# 使用花括号构建set集合
c = {'乔峰',"段誉","虚竹","天龙八部","射雕英雄传"}# 使用set()函数(构造器)来创建set集合
movies = set()
movies.add("天龙八部")
movies.add("射雕英雄传")
print("movies集合的元素:" , movies)
# issubset()方法与<=运算符效果相同
print("movies集合是否为c的子集合?", (movies <= c)) # 输出False
print("***"*20)e = set(range(5))
f = set(range(3, 7))
print("e集合的元素:" , e)
print("f集合的元素:" , f)
# 对两个集合执行异或运算
xor = e ^ f
print('e和f执行xor的结果:', xor)# 直接创建包含元素的集合
d = {"python面向对象", 'python基础', 'python爬虫'}
print("d集合的元素:" , d)
# 计算两个集合的交集,不改变d集合本身
inter1 = d & movies
print(inter1)'''
输出结果:movies集合的元素: {'天龙八部', '射雕英雄传'}
movies集合是否为c的子集合? True
************************************************************
e集合的元素: {0, 1, 2, 3, 4}
f集合的元素: {3, 4, 5, 6}
e和f执行xor的结果: {0, 1, 2, 5, 6}
d集合的元素: {'python基础', 'python面向对象', 'python爬虫'}
set()'''

四.猜你喜欢

  1. Python 字符串/列表/元组/字典之间的相互转换
  2. Python 局部变量和全局变量
  3. Python type 函数和 isinstance 函数区别
  4. Python is 和 == 区别
  5. Python 可变数据类型和不可变数据类型
  6. Python 浅拷贝和深拷贝
  7. Python 递归函数
  8. Python sys 模块
  9. Python 列表 list
  10. Python 元组 tuple
  11. Python 字典 dict
  12. Python 条件推导式
  13. Python 列表推导式
  14. Python 字典推导式
  15. Python 函数声明和调用
  16. Python 不定长参数 *argc/**kargcs

未经允许不得转载:猿说编程 » Python set 集合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cloud一分钟 | 华为云、腾讯云、阿里云中标「央视2018年租赁公有云服务」项目...

Hello&#xff0c;everyone&#xff1a;10月18日早&#xff0c;星期四&#xff0c;祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云计算学习…

Python frozenset 集合 - Python零基础入门教程

目录 一.Python frozenset 集合语法二.Python frozenset 集合使用三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在前一篇文章中我们对 Python set 集合 做了详细的讲解&#xff0c;而本文讲解的 frozenset 集合 其实和 set 集合类似&a…

Cloud一分钟 | 华云数据中标上药控股私有云千万级项目; 总投资90亿元的中国移动厦门数据中心,一期电源工程项目候选人公示...

Hello&#xff0c;everyone&#xff1a;10月19日早&#xff0c;星期五&#xff0c;祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云计算学习…

Python set list dict tuple 区别和相互转换 - Python零基础入门教程

目录 一.前言二.Python set list dict tuple 区别三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Python 提供多种数据类型来存放数据项集合&#xff0c;主要包括序列&#xff08;列表 list 和元组 tuple&#xff09;&#xff…

2023RT-Thread开发者大会

参加了一次RT-Thread的开发者大会&#xff0c;相当有意思&#xff0c;虽然一天奔波挺累&#xff0c;但睡了半天之后简单剪了下22号的视频&#xff0c;也就有时间写自己的参会笔记了。 与openEuler社区不同&#xff0c;RT-Thread社区更专注于嵌入式&#xff0c;与硬件厂商结合较…

企业大咖教你解决Kubernetes的挑战

Kubernetes&#xff08;K8s&#xff09;是自动化容器操作的开源平台&#xff0c;这些操作包括部署&#xff0c;调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器&#xff0c;那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes还可以提供容器弹性&am…

Python eval 与 exec 函数 - Python零基础入门教程

目录 一.前言二.Python eval 与 exec 函数简介三.Python eval 与 exec 函数使用 1.exec 函数执行代码段2.exec 函数执行 py 文件 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Python 内置函数 execfile 和 内置函数 exec 功…

Android 之父裁员 30%:开发者如何避免“被离职”?

近几个月来&#xff0c;Google 和 Android 都不太太平。从 7 月 Google 被欧盟处以 50 亿美元的反垄断罚款&#xff0c;到引起恐慌的 Android 碎片化漏洞&#xff0c;再到 Android 的许可政策遭遇更改......而现在&#xff0c;由 Android 之父一手创立的初创公司也惨遭“滑铁卢…

Python eval 与 exec 函数区别 - Python零基础入门教程

目录 一.Python eval 与 exec 函数的区别二.价值 10 个亿的智能机器人核心代码三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Python eval 与 exec 函数的区别 eval 和 exec 都是 Python 内置函数&#xff0c;并且都能执行 Python 代…

面趣 | 据说这道烧脑的微软面试题很奇葩,你来试试?

参加 2018 AI开发者大会&#xff0c;请点击 ↑↑↑问面试题目&#xff1a;昨天&#xff0c;我早上8点爬山&#xff0c;晚上8点到山顶。睡了一觉后&#xff0c;今天&#xff0c;我早上8点从山顶原路下山&#xff0c;晚上8点到山脚。请问&#xff0c;有没有一个时刻&#xff0c;昨…

Python bytearray/bytes/string区别 - Python零基础入门教程

目录 一.字节与字符的区别 1.字节概念2.字符概念3.字符串概念4.字节串概念 二.str / bytes / bytearray 区别三.string 与 bytes / bytearray 相互转换 1.string 经过编码 encode 转化成 bytes2.bytes 经过解码 decode 转化成 string 四.猜你喜欢 零基础 Python 学习路线推荐 …

Cloud一分钟 | 苹果更新“隐私页面”;中国联通大数据正式升级,进入数智新阶段...

Hello&#xff0c;everyone&#xff1a;10月22日早&#xff0c;星期一&#xff0c;祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云计算学习…

“双十一”即将来临,先来看看快递物流企业的大数据

继中通、韵达后&#xff0c;圆通速递于日前宣布涨价。据悉&#xff0c;圆通速递将对全国各网点到达上海地区的快件派送费上调&#xff0c;上调幅度为0.5元/票。双十一临近&#xff0c;快递企业接连涨价&#xff0c;行业或将迎来集体涨价潮。据圆通速递称&#xff0c;此次调价行…

Python bytes 和 string 相互转换 - Python零基础入门教程

目录 一.Python bytes 和 string 区别二.Python string 转 bytes三. Python bytes 转 string四.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Python bytes 和 string 区别 1.**Python bytes 也称字节序列&#xff0c;并非字符。取值范围…

Python str / bytes / unicode 区别详解 - Python零基础入门教程

目录 一.前言二.Python str / bytes / unicode 区别 1.Python2.x 版本中 str / bytes / unicode 区别2.Python3.x 版本中 str / bytes / unicode 区别 三.Python string 与 bytes 相互转换 1.string 经过编码 encode 转化成 bytes2. bytes 经过解码 decode 转化成 string 四.猜…

ip服务器ip地址信息配置,服务器ip地址配置

服务器ip地址配置 内容精选换一换当创建文件系统后&#xff0c;您需要将文件系统挂载至云服务器上&#xff0c;在为root用户创建一个本地目录。如已成功挂载文件系统&#xff0c;可跳过此章节。请记录步骤4的本地目录后&#xff0c;按照为每个用户创建有读写权限的子目录执行操…

干货 | 18个Python爬虫实战案例(已开源)

目录爬虫小工具文件下载小助手爬虫实战笔趣看小说下载VIP视频下载百度文库文章下载_rev1百度文库文章下载_rev2《帅啊》网帅哥图片下载构建代理IP池《火影忍者》漫画下载财务报表下载小助手一小时入门网络爬虫抖音App视频下载_rev1抖音App视频下载_rev2抖音App视频下载_rev3GEE…

Python reduce / map / filter 函数区别 - Python零基础入门教程

目录 一.map 函数二.reduce 函数三.filter 函数四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Python 中 reduce / map / filter 三个函数很容易搞混淆&#xff0c;虽然利用函数对迭代器或者序列中的元素操作&#xff0c;但是适用的场景…

BugkuCTF-Crypto题Crack it

下载文件得到shadow文件 查看文件&#xff1a;cat shadow/more shadow 应该有工具可以爆破 Kali系统里的john工具可以用。 破解&#xff1a;john shadow 用到john工具。John the Ripper是一个快速的密码破解程序 john --show[LEFT] 显示破解的密码[如果左&#xff0c;然后uncr…

Cloud一分钟 | 一脚踏入云计算2.0时代,京东云这回拼的是“朋友 圈”;8400万元私有云招标...

Hello&#xff0c;everyone&#xff1a;10月23日早&#xff0c;星期二&#xff0c;祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完1.微信群&#xff1a;添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群姓名公司职位”即可&#xff0c;加入【云计算学习…