[转载] python set大小_python set集合
参考链接: Python集合set
Python set集合
最后更新于:2020-03-21 12:06:03
在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(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com
@File:python_set.py
@Time:2019/11/09 21:25
@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.shuopython.com"}
print(type(dict_b))
print(dict_b)
输出结果:
set()
************************************************************
{False, '猿说python'}
************************************************************
{'name': '猿说python', 'url': 'www.shuopython.com'}
代码分析:观察上面代码,虽然字典dict 和 集合set 都是由{}构成,注意字典由键值对key/value构成,而集合确是由一个一个数据构成,和列表的元素类似!
二.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() — 用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略;
# 使用花括号构建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 集舍的交集。
^:计算两个集合异或的结果,就是用两个集合的并集减去交集的元素。
# 使用花括号构建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()
猜你喜欢:
技术交流、商务合作请直接联系博主
扫码或搜索:猿说python
猿说python
微信公众号 扫一扫关注
赞赏
微信赞赏支付宝赞赏
[转载] python set大小_python set集合相关推荐
- python set大小_python set集合
集合set 可变的 无序的 不重复的元素集合 set定义 初始化 set() 生成一个空集合 set(iterable) 可通过可迭代对象生产一个新的集合 s1 =set() s2= set(rang ...
- python 子图大小_Python | 图的大小
python 子图大小 In some cases, the automatic figure size generated by the matplotlib.pyplot is not visua ...
- [转载] python并行处理任务_Python 并行任务技巧
参考链接: Python的惊人技巧 Python的并发处理能力臭名昭著.先撇开线程以及GIL方面的问题不说,我觉得多线程问题的根源不在技术上而在于理念.大部分关于Pyhon线程和多进程的资料虽然都很不 ...
- python 字符串交集_Python序列--集合(set)
集合 集合用于保存不重复元素. - 集合和列表非常相似 - 不同点: 1.集合中只能存储不可变对象 2.集合中存储的对象是无序(不是按照元素的插入顺序保存) 3.集合中不能出现重复的元素 集合的所有元 ...
- python补集运算_Python 的集合(set)运算
数学里集合运算在 Python 语言的 set 数据类型中也有对应的运算. 子集⊆.真子集⊂ 判断真子集的 ⊂ 符号,在 Python 语言中,对应 set 类型的 < 运算 判断子集的 ⊆ 符 ...
- [转载] python仿真入门_python基础-入门
参考链接: Pytho 集合set symmetric_difference() 主要包括: 1.变量 2.用户输入 3.if...else语句 4.for循环 5.while循环 6.break和c ...
- [转载] python定义整型常量_Python笔记——数据类型、变量和常量
参考链接: Python变量,常量和文字 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频 ...
- [转载] python 需求清单_Python清单操作摘要
参考链接: Python清单 python 需求清单 列出功能和方法,理解和性能特征 (List Functions & Methods, Comprehension and Performa ...
- [转载] python面面观单元测试_python 使用unittest进行单元测试
参考链接: 使用Unittest在Python中进行单元测试 importunittestimportHTMLTestRunner"""Python中有一个自带的单元测试 ...
最新文章
- 用 Python 快速制作海报级地图
- 《数据竞赛白皮书·下篇》发布,开源办好一场数据竞赛的实践方法论
- 作者招募 | 听我的,各路炼丹师都来加入我们吧!
- 7-25 雨刷程序功能扩展设计 (100 分)
- 中电福富外包offer要等多久_校招|双非本科,非科班,自学JAVA 1年时间终于斩获offer!...
- 硬盘检测工具Smartmontools安装、部署、使用
- java gridout_GridBagLayout 布局 的行列概念以及gridx,gridy失效?
- T1013 求先序排列 codevs
- Redis-数据结构与对象
- java饼状图获取数据集_HighChars3D饼图(从后台获取数据)
- .NET报表控件ActiveReports 教程:应用系统中如何完成各种报表系统的需求
- 信息安全行业含金量较高的2个认证(建议都看一下)
- psd原型图自动转html,psd自动转成html的研究
- Logistic 回归的决策边界
- QQ群聊天记录统计分析 V0.2
- Contrast Preserving Decolorization
- 2016-ICLR-Order Matters- Sequence to sequence for sets
- A Cross-Modal Image and Text Retrieval Method Based on Efficient Feature Extraction and Interactive
- 鹰猎长空,航空志愿飞虎队
- 2023最新Vue 面试题+详解答案
热门文章
- VS2019,C#打包发布生成单个exe
- 用计算机打李白的歌,抖音笨李白是什么歌 歌词中带有笨李白原版歌曲名字-游侠手游...
- java jdbc 批量更新_java,jdbc,大量数据update更新效率很慢,哪位大神可怜可怜我吧...
- dbutils mysql_mysql之DBUtils
- skywalking mysql配置_skywalking 配置和使用(windows)
- extjs中滚动条属性_前端学习随笔6 盒模型及相关属性
- c++绝对值函数_Python自带自定义高阶函数实战
- PBR理论基础1:辐射度与BRDF
- BEST定理:有向图欧拉回路个数(bzoj 3659: Which Dreamed It)
- 安卓运行时监听配置更改:sim卡、本地语言、键盘显示或隐藏、字体大小、UI模式、屏幕方向、屏幕布局(另一个屏幕)、可用屏幕大小(横纵向)、无屏幕大小(外接屏幕)。