Python——数据类型之set
本篇主要内容
• set集合的特点
• set集合的建立
• set集合的17个内置函数
• set集合的数学运算符号
1、set集合类型的特点。
1、无序
2、不同元素
3、元素必须不可变。(数字,字符串,元组都属于不可变的,列表,字典属于可变的。)
2、set集合的建立
a={'Albert', 'QQ','XP'}
print(type(a),a)
输出
<class 'set'> {'Albert', 'QQ', 'XP'}
元素不可为可变数据类型
a={'Albert', 'QQ','XP',(,,)}
print(a)
b={'Albert', 'QQ','XP',[,,]}
print(b)
输出
{'XP', (1, 2, 3), 'Albert', 'QQ'}
Traceback (most recent call last):
File "C:/Users/admin/PycharmProjects/temp.py", line 12, in <module>
b={'Albert', 'QQ','XP',[1,2,3]}
TypeError: unhashable type: 'list'
也可以这样新建一个集合
a=set(['Albert', 'QQ','XP'])
print(a)
输出
{'Albert', 'QQ', 'XP'}
也就是遍历元素生成一个集合。
3、set的内置函数方法
(1)add(self, *args, **kwargs):这很简单的往集合里面放元素。
a=set(['Albert', 'QQ','XP'])
a.add('yzp')
print(a)
输出
{'XP', 'Albert', 'QQ', 'yzp'}
从输出可以看出来集合里面元素的存放是无序的。
注:一次只能加一个不可变元素。
(2)clear(self, *args, **kwargs):清空整个集合
(3)copy(self, *args, **kwargs):复制一个一模一样的集合(还是b=a与b=a.copy()的区别)
(4)difference(self, *args, **kwargs):得到多个集合的差集。
a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.difference(b))
输出
{'Albert'}
直白的说就是a有而b没有的。
(5)difference_update(self, *args, **kwargs):求差集并更新这个集合
a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.difference_update(b))
print(a)
输出
None
{'Albert'}
(6)discard(self, *args, **kwargs):删除集合里面的指定元素,如果不存在这个元素,什么也不做(不报错)
a={'Albert', 'QQ','XP'}
a.discard('QQ')
print(a)
输出
{'XP', 'Albert'}
(7)intersection(self, *args, **kwargs):求交集
a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.intersection(b))
输出
{'QQ', 'XP'}
通俗的来说就是ab都有的
(8)intersection_update(self, *args, **kwargs):求交集并更新集合
a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.intersection_update(b))
print(a)
输出
None
{'XP', 'QQ'}
(9)isdisjoint(self, *args, **kwargs):如果交集为空,返回true
a={'Albert', 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.isdisjoint(b))
输出
False
(10)issubset(self, *args, **kwargs),判断是不是被包含。
a={ 'QQ','XP'}
b={'QQ','XP','yzp'}
print(a.issubset(b))
输出
True
(11)issuperset(self, *args, **kwargs):判断是不是包含
a={ 'Albert','QQ','XP'}
b={'QQ','XP'}
print(a.issuperset(b))
输出
True
(12)pop(self, *args, **kwargs):随机删除一个元素,如果集合为空,则报错KeyError
a={ 'Albert','QQ','XP'}
a.pop()
print(a)
输出
{'QQ', 'XP'}
(13)remove(self, *args, **kwargs):删除指定元素,元素不存在则报错KeyError
a={ 'Albert','QQ','XP'}
a.remove('Albert')
print(a)
a.remove('yzp')
输出
{'QQ', 'XP'}
Traceback (most recent call last):
File "C:/Users/admin/PycharmProjects/temp.py", line 13, in <module>
a.remove('yzp')
KeyError: 'yzp'
(14)symmetric_difference(self, *args, **kwargs):求交叉补集
a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
print(a.symmetric_difference(b))
输出
{'Albert', 'yzp'}
(15)symmetric_difference_update(self, *args, **kwargs):求交叉补集并更新集合
(16)union(self, *args, **kwargs):求并集
a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
print(a.union(b))
输出
{'XP', 'QQ', 'yzp', 'Albert'}
(17)update(self, *args, **kwargs):更新集合。也就是求并集并更新这个集合
a={ 'Albert','QQ','XP'}
b={'QQ','XP','yzp'}
a.update(b)
print(a)
输出
{'yzp', 'Albert', 'QQ', 'XP'}
4、数学运算符
求交集 a&b
求并集 a|b
求差集 a-b,或者b-a
求交叉补集 a^b
a={,,}
b={,,}
print(a&b)
print(a|b)
print(a-b)
print(b-a)
print(a^b)
输出
{, }
{, , , }
{}
{}
{, }
Python——数据类型之set的更多相关文章
- python 数据类型---布尔型& 字符串
python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...
- Python 数据类型及其用法
本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...
- day01-day04总结- Python 数据类型及其用法
Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...
- Python数据类型及其方法详解
Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...
- Python学习笔记(五)--Python数据类型-数字及字符串
Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...
- python数据类型之元组、字典、集合
python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...
- 1 Python数据类型--
常见的Python数据类型: (1)数值类型:就是平时处理的数字(整数.浮点数) (2)序列类型:有一系列的对象并排或者排列的情况.如字符串(str),列表(list),元组(tuple)等 (3)集 ...
- Python数据类型和数据操作
python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...
- Python数据类型(python3)
Python数据类型(python3) 基础数据类型 整型 <class 'int'> 带符号的,根据机器字长32位和64位表示的范围不相同,分别是: -2^31 - 2^31-1 和 - ...
- 二、Python数据类型(一)
一.Python的基本输入与输出语句 (一)输出语句 print() 示例: print('你好,Python') print(4+5) a = 10 print(a) 输出的内容可以是字符串,变量, ...
随机推荐
- mac install PyQt5
1. install brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...
- EasyUI加zTree使用解析 easyui修改操作的表单回显方法 验证框提交表单前验证 datagrid的load方法
带参提交一次查询,从服务器加载新数据.这是一个神奇的方法 $('#dg').datagrid('load',{ code: '01', name: 'name01' }); easyui修改操作的回显 ...
- 嵌入式:UCOSIII的使用(17.01.24补充)
0.一些移植.系统相关 OS_CFG_APP.H /* --------------------- MISCELLANEOUS ------------------ */ #define OS_CFG ...
- c#的二进制序列化组件MessagePack介绍
c#的序列化有多种,我一般喜欢用第三方组件,一个公共组件要拿出来用,而且支持很多语言,甚至以此谋生,肯定有其优势. 有或者说存在必然有其合理性,经过几年开发,我更加喜欢第三方的东西,类似序列化的东西. ...
- 你不知道的javaScript笔记(5)
原生函数 常用的原生函数 String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol( ...
- ant-design-pro使用服务器数据接口代理配置
因为是新入门antd-pro这个的小白,所以在mock数据和服务器数据切换这里搞了将近2天才弄好,配置如下,供各位初学者参考,如有错误的地方,请大神指出~叩谢!! 下面开始干货: 1..roadhog ...
- C++求值顺序
<C++Primer5th>中文版第124页 C++语言没有明确规定大多数二元运算符的求值顺序, 给编译器优化留下了余地. 这种策略实际上是在代码生成效率和程序潜在缺陷之间进行了权衡,这个 ...
- 【MYSQL笔记3】MYSQL过程式数据库对象之存储过程的调用、删除和修改
mysql从5.0版本开始支持存储过程.存储函数.触发器和事件功能的实现. 我们以一本书中的例题为例:创建xscj数据库的存储过程,判断两个输入的参数哪个更大.并调用该存储过程. (1)调用 首先,创 ...
- linux系统下病毒排除思路
1.top查看是否有特别吃cpu和内存的进程,病毒进程kill是杀不死的,因为ps命令被修改 2.ls -la /proc/病毒进程pid/ pwd为病毒进程程序目录 一般在/usr/bin下 3. ...
- vue项目中缓存问题
单页面应用总是存在缓存问题,特别是在微信端,更新页面之后访问的还是老页面,缓存的问题是因为用户访问的脚本地址并没有改变,浏览器就会读取原来的脚本 网上有几种解决办法,首先列举一下 1.加meta,禁止 ...