python set 集合复习--点滴
一、set特性:
set是一个无序不重复的元素集合。
集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小),用for循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片( slice)操作,也没有键(keys)可用来获取集合中元素的值。
set和dict一样,只是没有value,相当于dict的key集合, 由于dict中的key是不重复的,且是不可变对象,因此set也有如下特性
1.不重复
2.元素为不可变对象
二、 创建set集合
>>> set('boy')
set(['y', 'b', 'o'])
>>>
集合的添加
添加:add()方法和update()方法,add()作为一个元素添加,update()单个元素添加。
>>> n = set('boy')
>>> n
set(['y', 'b', 'o'])
>>> n.add('python')
>>> print n
set(['y', 'python', 'b', 'o'])
>>> n.update('ok')
>>> n
set(['y', 'python', 'k', 'b', 'o'])
例子2:
>>> se = {11,22,33}
>>> be = {22,44,55}
>>> se.update(be)
>>> se
set([33, 22, 55, 11, 44])
>>> se.update([66,77])
>>> print (se)
set([33, 66, 22, 55, 11, 44, 77])
>>> se.update('88')
>>> se
set([33, 66, 22, 55, '8', 11, 44, 77])
集合的删除
discard(),remove(),pop()
se = {11, 22, 33}
se.discard(11)
se.discard(44) # 移除不存的元素不会报错
print(se) se = {11, 22, 33}
se.remove(11) se.remove(44) # 移除不存的元素会报错
print(se)
se = {11, 22, 33} # 移除末尾元素并把移除的元素赋给新值
temp = se.pop() print(temp) # 33
print(se) # {11, 22}
取交集
se = {11, 22, 33}
be = {22, 55}
temp1 = se.intersection(be) #取交集,赋给新值
print(temp1) # 22
print(se) # {11, 22, 33}
temp2 = se.intersection_update(be) #取交集并更新自己
print(temp2) # None
print(se) # 22
或者
交集
>>> se&be
set([22])
并集
>>> se|be
set([33, 11, 22, 55])
差集
>>> se-be
set([33, 11])
集合的转换
>>> se = set(range(4))
>>> li = list(se)
>>> tu = tuple(se)
>>> st = str(se)
>>> print (li,type(li))
([0, 1, 2, 3], <type 'list'>)
>>> print (tu,type(tu))
((0, 1, 2, 3), <type 'tuple'>)
>>> print (st,type(st))
('set([0, 1, 2, 3])', <type 'str'>)
判断
se = {11, 22, 33}
be = {22}
print(se.isdisjoint(be)) #False,判断是否不存在交集(有交集False,无交集True)
print(se.issubset(be)) #False,判断se是否是be的子集合
print(se.issuperset(be)) #True,判断se是否是be的父集合
python set 集合复习--点滴的更多相关文章
- 5月11日 ArrayList集合复习、特殊集合、枚举类型
一.ArrayList集合复习 //定义 ArrayList al = new ArrayList(); //添加元素 al.Add(); //插入元素 al.Insert(,); //查看个数 in ...
- Python 3 集合基础和概念!
Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...
- Python的集合
1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...
- Python 操作集合
Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...
- Python中集合set()的使用及处理
在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...
- Python:集合操作总结
集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...
- python 的集合 set()操作
Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素. 有以下运算: 1.创建一个set ()集合: 2.add:增加集合元素 3.clea ...
- python set集合(16)
在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...
- python frozenset集合(17)
在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样 ...
随机推荐
- IDEA中静态资源无法找到的原因
IDEA中静态资源无法找到, 原因1:同名的文件但是在不同的包里. 原因2:IDEA重启,web清空缓存. 原因3:错误的文件及路径. 原因4:其他原因排除后,可使用绝招重启试试.
- _pet
可以控制各职业召唤物的属性.用于增强BB `comment` 备注 `classIndex` 职业序号 `DmgAddPct` 宠物伤害倍率 `SpAddPct` 法术伤害 `HpAddPct`血量倍 ...
- numpy最大值和最大值索引
a= np.array([9, 12, 88, 14, 25])list_a = a.tolist() list_a_max_list = max(list_a) #返回最大值max_index = ...
- openssh升级,打补丁
以Root用户上传升级包至/home/dou/system openssh-7.5p1.tar.gz openssl-1.0.2l.tar.gz zlib-1.2.11.tar.gz l 安装所需包 ...
- js 字符串跟数组的相互转化
一:字符串转化为数组 例子: var str = "3:2;2:1"; 要变成 arr= [{ a:"3", b:"2", bol:fals ...
- shell脚本中if
[[ $i =~ ^[0-9]+$ ]] && echo 1 的解释 =~ 表示的是匹配 && 是前一个命令为真 才执行后一个命令 [[ ]] 是if判断使用正则表达式 ...
- Netflix分享构建Microservices的经验
Netflix分享构建Microservices的经验 http://t.cn/Rwjgutw 新词:Microservices.我觉得就是service oriented architecture的 ...
- javascript五种基本类型
typeof 功能:检测变量的类型 语法:console.log(typeof 变量) 或 console.log(typeof (变量)): 五大基本类型 1.underfined 声明变量但是 ...
- 简述采用四次握手机制释放TCP连接的四个步骤
(1)源结点A向目的结点B发送连接释放请求(FIN,seg=x),并且不再向B发送数据,但仍继续接收从B发来的数据. (2)目的结点B收到此连接释放请求后立即向A发出确认(ACK,ack=x+1),但 ...
- ID基本操作(在框架内处理文本)5.28
1.可以直接拖入文档,word,excel,rtf,还可以选中文字,导出文本. 2. 批量把一段文字改为另一段. 还可以改特殊符号.定义范围 . 建立文字后鼠标右键,选择文本框架选项 直接拖动文本框架 ...