Python学习笔记——集合类型
集合类型有两种不同的类型——可变集合(set)和不可变集合(frozenset)
可变集合不是可哈希的,不能用作字典的键,也不能用做其他集合中的元素
不可变集合是有哈希值的,能被用做字典的键或者是作为集合中的一个成员
1.创建集合类型和给集合赋值
- >>> s = set('cheeseshop')
- >>> s
- set(['c', 'e', 'h', 'o', 'p', 's'])
- >>> t = frozenset('bookshop')
- >>> t
- frozenset(['b', 'h', 'k', 'o', 'p', 's'])
- >>> type(s)
- <type 'set'>
- >>> type(t)
- <type 'frozenset'>
- >>> len(s)
- 6
- >>> len(t)
- 6
- >>> s == t
- False
2.访问集合中的值
- >>> 'k' in s
- False
- >>> 'k' in t
- True
- >>> for i in s:
- ... print i
- ...
- c
- e
- h
- o
- p
- s
3.更新集合
- >>> s.add('z')
- >>> s
- set(['c', 'e', 'h', 'o', 'p', 's', 'z'])
- >>> s.update('abc')
- >>> s
- set(['a', 'c', 'b', 'e', 'h', 'o', 'p', 's', 'z'])
- >>> s.remove('z')
- >>> s
- set(['a', 'c', 'b', 'e', 'h', 'o', 'p', 's'])
- >>> s -= set('abc')
- >>> s
- set(['e', 'h', 'o', 'p', 's'])
不可变集合不能修改
4.删除集合中的成员和集合
- >>> del t
5.集合类型操作符
<1>标准类型操作符
1.成员关系(in,not in)
2.集合等价/不等价(==,!=)
3.子集/超集(<,<=,>,>=)
<2>集合类型操作符
1.联合(|)
- >>> s|t
- set(['b', 'e', 'h', 'k', 'o', 'p', 's'])
2.交集(&)
- >>> s&t
- set(['h', 's', 'o', 'p'])
3.差补/相对补集(-)
- >>> s-t
- set(['e'])
4.对称差分(^),即(XOR)异或,只能是属于集合s或者集合t的成员,不能同时属于两个集合
- >>> s^t
- set(['b', 'e', 'k'])
5.混合集合类型操作
类型不相同的时候,产生的结果类型和左操作数的类型相同
<3>集合类型操作符(仅适用于可变集合)
1.update()方法或者|=
- >>> s|=t
- >>> s
- set(['b', 'e', 'h', 'k', 'o', 'p', 's'])
2.intersection_update()方法或者&=,保留两个集合重复的成员
- >>> s
- set(['a', 'c', 'b', 'd'])
- >>> t
- set(['e', 'd', 'f'])
- >>> s&=t
- >>> s
- set(['d'])
3.difference_update()方法或者-=
4.symmetric_difference_update()方法或者^=,差分操作
6.内建函数
<1>标准类型函数——len()
<2>集合类型工厂函数——set()和frozenset()
7.集合类型内建方法——P184
Python学习笔记——集合类型的更多相关文章
- Scala学习笔记--集合类型Queue,Set
补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Q ...
- Mooc中国大学Python学习笔记--数字类型及操作
整数类型 只需知道整数无限制,pow(),4进制表示形式 与数学中整数的概念一致 --可正可负,没有取值范限制 --pow(x,y)函数:计算x^y,想算多大算多大 -十进制:10 -二进制,以0b或 ...
- [Python学习笔记] 数字类型及操作
数字类型 整数类型 十进制:1110,-123 二进制:以0B或0b开头 0b110,-0B101 八进制:以0O或0o开头 0o123,-0O567 十六进制:以0X或0x开头 0x555,-0X8 ...
- Python学习笔记-数字类型
如何定义一个数字类型 定义var1为一个INT类型,所以在5/3 输出的是 1. var1 = 5 var1=var1/3 print var1 定义var1为一个INT类型,因为var1是INT类型 ...
- Python学习笔记——集合
1. 定义 num = {} print(type(num)) num2 = {1,2,3,4,5} print(type(num2)) <class 'dict'> <class ...
- [Python学习笔记] 字符串类型及操作
字符串处理 索引:返回字符串中单个字符 <字符串>[M] 切片:返回字符串中一段字符子串 <字符串>[M:N:K] 字符串格式化使用.format()方法
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
- 【python学习笔记】5.条件、循环和其他语句
[python学习笔记]5.条件.循环和其他语句 print: 用来打印表达式,不管是字符串还是其他类型,都输出以字符串输出:可以通过逗号分隔输出多个表达式 import: 导入模块 impo ...
- Deep learning with Python 学习笔记(9)
神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...
随机推荐
- C# 实现酒店房态图
酒店管理系统最重要和实用的是能够及时.一目了然的反应房间状态的房态图,之前在开发一个的酒店管理系统中做了一个还算实用的房态图,现在分享下: 鼠标移到每个房间上面,可显示提示信息: 还可以自定义设置不同 ...
- js字符串转为日期格式
1. <script type="text/javascript"> //字符串转日期格式,strDate要转为日期格式的字符串 function getDate(st ...
- WPF 依赖属性
依赖属性,简单的说,在WPF控件应用过程中,界面上直接可以引用的属性 如:<Button Content="aaa"></Button> Content称为 ...
- android Bundle savedInstanceState用途
经常会出现用户按到home键,退出了界面,或者安卓系统意外回收了应用的进程,这种情况下,使用Bundle savedInstanceState就可以用户再次打开应用的时候恢复的原来的状态 (以下转自: ...
- linux下遇见mysql启动报2002错误解决办法
前言:目前问题解决了,但是仍不知道是什么原因造成的,在出现问题前安装uWSGI后,mysql就出现这个问题的,哪位大侠说说这是怎么回事? 正文:Linux 下 Mysql error 2002 错误解 ...
- 【转载】Linux中常用操作命令
说明:开始学习linux系统,为了方便查看,特转载一篇Linux中常用操作命令,转载地址:http://www.cnblogs.com/laov/p/3541414.html 正文: Linux简介及 ...
- Something Wrong or Something Right
其实,你还可以和高中一样 其实,你还可以和高中一样,每天不情愿的早早起床,走在冬天漆黑的清晨里.食堂还没有开门,你就去商店买面包和牛奶,接着快步走进教学楼,轻声咒骂一声老师要求的时间太早,然后打开一本 ...
- Java集合之泛型的使用
Java集合之泛型的使用 泛型提供了一种轻便灵活的数据操作,数据的安全性相对提高. 泛型提供了对列表元素的约束条件,比如ArrayList有序链表,可存储任意类型的元素. 此处构建一个ArrayLis ...
- 离散信源的分类和数学模型&&离散无记忆信源的熵
1.离散信源的分类和数学模型 在离散时间发出离散符号的信源称为离散信源.如果信源符号集为有限集,则称为有限离散信源.如果信源符号集为无限可数集,则称为无限离散信源. 离散无记忆信源的N次拓展源:设信源 ...
- Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案
的最佳方案 标签: Android屏幕旋转AsyncTaskProgressDialog 2014-07-19 09:25 39227人阅读 评论(46) 收藏 举报 分类: [android 进阶之 ...