【Python】python之set
阅读目录
- 一、set集合介绍
- 二、集合的方法
- 1、s.add()添加元素
- 3、s.copy()浅拷贝
- 4、s.difference(b)
- 5、s.difference_update(b)
- 6、s.discard(obj)
- 7、s.intersection(b)
- 8、s.intersection_update(b)
- 9、s.isdisjoint(b)
- 10、s.issubset(b)
- 11、s.issuperset(b)
- 12、s.pop()
- 13、s.remove(obj)
- 14、s.symmetric_difference()
- 15、s.symmetric_difference_update(b)
- 16、s.union(b)
- 17、s.update(b)
一、set集合介绍
set集合,是一个无序的,且不重复的元素集合
定义方式使用"{}",也可以使用set(iterable)内置函数定义,但iterable参数只能是可迭代对象的对象
>>> set1 = {1,2,3,4,1,3} #定义集合,默认会将重复的去掉
>>> set1
{1, 2, 3, 4}
>>> aa = 'abcde'
>>> set2 = set(aa) #使用set函数定义集合
>>> set2
{'a', 'b', 'd', 'c', 'e'}
>>> set3 = set('python')
>>> set3
{'y', 'p', 'o', 'h', 'n', 't'}
>>> set2 = set(range(5)) #如果使用数字必须使用迭代序列
>>> set2
{0, 1, 2, 3, 4}
二、集合的方法
1、s.add()添加元素
>>> set2
{1, 2, 3, 4, 5}
>>> set2.add(6)
>>> set2
{1, 2, 3, 4, 5, 6}
>>> set2.add('addr')
>>> set2
{1, 2, 3, 4, 5, 6, 'addr'}
2、s.clear()情况所有元素
>>> set2
{1, 2, 3, 4, 5, 6, 'addr'}
>>> set2.clear()
>>> set2
set()
3、s.copy()浅拷贝
>>> set1
{1, 2, 3, 4, 6, 'addr'}
>>> set3=set1.copy()
>>> set3
{1, 2, 3, 4, 6, 'addr'}
4、s.difference(b)
返回两个集合差集中s的元素
>>> set1 = {1,2,3,4}
>>> set2 = {3,4,5,6}
>>> set1.difference(set2) #用set2比较set1时,返回set1和set2交集中set1剩余的元素
{1, 2}
>>> set2.difference(set1) #理解同上,返回自身集合中对方集合没有的新集合
{5, 6}
5、s.difference_update(b)
从s集合中移除与b集合交集的元素,并更新到s集合
>>> set1 = {1,2,3,4}
>>> set2 = {3,4,5,6}
>>> set1.difference_update(set2)
>>> set1
{1, 2}
>>> set2.difference_update(set1) #没有交集元素,所以不变
>>> set2
{3, 4, 5, 6}
6、s.discard(obj)
删除指定元素,如不存在不会报错
>>> set2
{3, 4, 5, 6}
>>> set2.discard(6)
>>> set2
{3, 4, 5}
>>> set2.discard(7) #元素不存在,没有报错
>>> set2
{3, 4, 5}
7、s.intersection(b)
返回两个或多个集合的交集,并返回
>>> set1 = {1,2,3,4}
>>> set2 = {3,4,5,6}
>>> set1.intersection(set2) #返回交集值
{3, 4}
>>> set3 = {3,6,8,9}
>>> set1.intersection(set2,set3) #必须三个set都存在才返回
{3}
8、s.intersection_update(b)
根据当前s与比较b的交集值更新到s集合中
>>> set1 = {1,2,3,4,5,6}
>>> set2 = {3,4,5,7,8,9}
>>> set1.intersection_update(set2) #取交集值更新到自身set
>>> set1
{3, 4, 5}
>>> set2
{3, 4, 5, 7, 8, 9}
9、s.isdisjoint(b)
如果两个集合没有交集返回True否则返回False
>>> set1 = {1,2,3,4,5}
>>> set2 = {4,5,6,7,8}
>>> set1.isdisjoint(set2)
False
>>> set3 = {22,33}
>>> set1.isdisjoint(set3)
True
10、s.issubset(b)
s集合元素是否被b集合包含,是则返回True否则返回False
>>> s1 = {1,2}
>>> s2 = {1,2,3,4}
>>> s3 = {11,22}
>>> s1.issubset(s2)
True
>>> s1.issubset(s3)
False
11、s.issuperset(b)
判断s集合元素是否包含了所以b的集合元素,是返回True否则返回False
>>> s1 = {1,2}
>>> s2 = {1,2,3,4}
>>> s2.issuperset(s1)
True
>>> s1.issuperset(s2)
False
12、s.pop()
集合默认排序后,随机删除一个元素,并返回该元素,默认删除第一个元素
>>> s2 = {'name','age','salary','shool'}
>>> s2
{'salary', 'name', 'shool', 'age'}
>>> s2.pop()
'salary'
>>> s2.pop()
'name'
>>> s2.pop()
'shool'
13、s.remove(obj)
移除集合中的指定值,和discard一样,只是remove在值不存在时会报错。
>>> s1 = {1,2,3,4}
>>> s1.remove(2)
>>> s1
{1, 3, 4}
>>> s1.remove(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 5
14、s.symmetric_difference()
返回两个集合的差集
>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1.symmetric_difference(s2) #返回两个集合不交集的元素
{1, 2, 5, 6}
>>> s2.symmetric_difference(s1)
{1, 2, 5, 6}
15、s.symmetric_difference_update(b)
将两个集合不交集的元素返回给s
>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1.symmetric_difference_update(s2)
>>> s1
{1, 2, 5, 6}
16、s.union(b)
返回两个集合的并集
>>> s1 = {1,2,3,4}
>>> s2 = {3,4,5,6}
>>> s1.union(s2)
{1, 2, 3, 4, 5, 6}
17、s.update(b)
以集合b扩展s集合
>>> s1 = {1,2,3}
>>> s2 = {4,5,6}
>>> s1.update(s2)
>>> s1
{1, 2, 3, 4, 5, 6}
【Python】python之set的更多相关文章
- python --- Python中的callable 函数
python --- Python中的callable 函数 转自: http://archive.cnblogs.com/a/1798319/ Python中的callable 函数 callabl ...
- Micro Python - Python for microcontrollers
Micro Python - Python for microcontrollers MicroPython
- 从Scratch到Python——python turtle 一种比pygame更加简洁的实现
从Scratch到Python--python turtle 一种比pygame更加简洁的实现 现在很多学校都开设了Scratch课程,学生可以利用Scratch创作丰富的作品,然而Scratch之后 ...
- 从Scratch到Python——Python生成二维码
# Python利用pyqrcode模块生成二维码 import pyqrcode import sys number = pyqrcode.create('从Scratch到Python--Pyth ...
- [Python]Python 使用 for 循环的小例子
[Python]Python 使用 for 循环的小例子: In [7]: for i in range(5): ...: print "xxxx" ...: print &quo ...
- [python]python 遍历一个list 的小例子:
[python]python 遍历一个list 的小例子: mlist=["aaa","bbb","ccc"]for ss in enume ...
- [Python]Python日期格式和字符串格式相互转换
由字符串格式转化为日期格式的函数为: datetime.datetime.strptime() 由日期格式转化为字符串格式的函数为: datetime.datetime.strftime() # en ...
- [python]Python 字典(Dictionary) update()方法
update() 函数把字典dict2的键/值对更新到dict里.如果后面的键有重复的会覆盖前面的语法dict.update(dict2) dict = {'Name': 'Zara', 'Age': ...
- [python]python try异常处理机制
#python的try语句有两种风格 #一:种是处理异常(try/except/else) #二:种是无论是否发生异常都将执行最后的代码(try/finally) try/except/else风格 ...
- [Python] Python中的一些特殊函数
1. 过滤函数filter 定义:filter 函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个列表中的元素:返回一个使bool_func返回值为true的元素的序列. a=[ ...
随机推荐
- postgresql 日期类型处理实践
---- 日期+1 select date '2018-01-14' + integer '1'; 结果: 2018-01-15 ---- 日期+1 后 转 20180101 日期字符串 select ...
- 成都Uber优步司机奖励政策(4月8日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Spring框架之Filter应用
在web.xml中进行配置,对所有的URL请求进行过滤,就像"击鼓传花"一样,链式处理. 配置分为两种A和B. 在web.xml中增加如下内容: <filter> &l ...
- VDI数据恢复
环境:cirtix xendesktop 问题:VDI无法正常启动,后台登录查看报错.多次重启无效果,客户部分数据存放在启动盘. 解决方法:1.创建一台新的VDI(必须保证关机)2.将原有VDI启动盘 ...
- Wireshark对HTTPS数据的解密
本文来自网易云社区 之前有介绍<wireshark抓包分析--TCP/IP协议>,然后某天有人问我,示例里是HTTP的,如果是HTTPS,你可以抓包分析吗?基于好奇,我查阅了下相关资料,把 ...
- hdu1455Sticks(经典dfs+剪枝)
Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- centos7下搭建django
安装环境:centos7.4 1 安装nginx yum install nginx 注:尝试过在本地和腾讯云上安装,使用同一条命令:在本地安装提示没有可用安装包,云上安装正常 启动nginx,并启用 ...
- Selenium 入门到精通系列:四
Selenium 入门到精通系列 PS:鼠标右键.鼠标悬停.键盘操作方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019 ...
- C指针函数中的局部变量返回
所谓指针函数其实就是 :一个函数的返回值为指针. 指针函数定义:返回类型标识符* 函数名(形参列表){函数体} eg: int* fun1(int n){} 指针函数和局部变量返回解析: 简 ...
- 四、oracle 用户管理二
一.使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile.当建立用户没有指定profile选项时 ...