集合类型有两种不同的类型——可变集合(set)和不可变集合(frozenset)

可变集合不是可哈希的,不能用作字典的键,也不能用做其他集合中的元素

不可变集合是有哈希值的,能被用做字典的键或者是作为集合中的一个成员

1.创建集合类型和给集合赋值

  1. >>> s = set('cheeseshop')
  2. >>> s
  3. set(['c', 'e', 'h', 'o', 'p', 's'])
  4. >>> t = frozenset('bookshop')
  5. >>> t
  6. frozenset(['b', 'h', 'k', 'o', 'p', 's'])
  7. >>> type(s)
  8. <type 'set'>
  9. >>> type(t)
  10. <type 'frozenset'>
  11. >>> len(s)
  12. 6
  13. >>> len(t)
  14. 6
  15. >>> s == t
  16. False

2.访问集合中的值

  1. >>> 'k' in s
  2. False
  3. >>> 'k' in t
  4. True
  5. >>> for i in s:
  6. ... print i
  7. ...
  8. c
  9. e
  10. h
  11. o
  12. p
  13. s

3.更新集合

  1. >>> s.add('z')
  2. >>> s
  3. set(['c', 'e', 'h', 'o', 'p', 's', 'z'])
  4. >>> s.update('abc')
  5. >>> s
  6. set(['a', 'c', 'b', 'e', 'h', 'o', 'p', 's', 'z'])
  7. >>> s.remove('z')
  8. >>> s
  9. set(['a', 'c', 'b', 'e', 'h', 'o', 'p', 's'])
  10. >>> s -= set('abc')
  11. >>> s
  12. set(['e', 'h', 'o', 'p', 's'])

  不可变集合不能修改

4.删除集合中的成员和集合

  1. >>> del t

5.集合类型操作符

  <1>标准类型操作符

    1.成员关系(in,not in)

    2.集合等价/不等价(==,!=)

    3.子集/超集(<,<=,>,>=)

  <2>集合类型操作符

    1.联合(|)

  1. >>> s|t
  2. set(['b', 'e', 'h', 'k', 'o', 'p', 's'])

    2.交集(&)

  1. >>> s&t
  2. set(['h', 's', 'o', 'p'])

    3.差补/相对补集(-)

  1. >>> s-t
  2. set(['e'])

     4.对称差分(^),即(XOR)异或,只能是属于集合s或者集合t的成员,不能同时属于两个集合

  1. >>> s^t
  2. set(['b', 'e', 'k'])

     5.混合集合类型操作

      类型不相同的时候,产生的结果类型和左操作数的类型相同

  <3>集合类型操作符(仅适用于可变集合)

    1.update()方法或者|=

  1. >>> s|=t
  2. >>> s
  3. set(['b', 'e', 'h', 'k', 'o', 'p', 's'])

     2.intersection_update()方法或者&=,保留两个集合重复的成员

  1. >>> s
  2. set(['a', 'c', 'b', 'd'])
  3. >>> t
  4. set(['e', 'd', 'f'])
  5. >>> s&=t
  6. >>> s
  7. set(['d'])

    3.difference_update()方法或者-=

    4.symmetric_difference_update()方法或者^=,差分操作

6.内建函数

  <1>标准类型函数——len()

   <2>集合类型工厂函数——set()和frozenset()

7.集合类型内建方法——P184

Python学习笔记——集合类型的更多相关文章

  1. Scala学习笔记--集合类型Queue,Set

    补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Q ...

  2. Mooc中国大学Python学习笔记--数字类型及操作

    整数类型 只需知道整数无限制,pow(),4进制表示形式 与数学中整数的概念一致 --可正可负,没有取值范限制 --pow(x,y)函数:计算x^y,想算多大算多大 -十进制:10 -二进制,以0b或 ...

  3. [Python学习笔记] 数字类型及操作

    数字类型 整数类型 十进制:1110,-123 二进制:以0B或0b开头 0b110,-0B101 八进制:以0O或0o开头 0o123,-0O567 十六进制:以0X或0x开头 0x555,-0X8 ...

  4. Python学习笔记-数字类型

    如何定义一个数字类型 定义var1为一个INT类型,所以在5/3 输出的是 1. var1 = 5 var1=var1/3 print var1 定义var1为一个INT类型,因为var1是INT类型 ...

  5. Python学习笔记——集合

    1. 定义 num = {} print(type(num)) num2 = {1,2,3,4,5} print(type(num2)) <class 'dict'> <class ...

  6. [Python学习笔记] 字符串类型及操作

    字符串处理 索引:返回字符串中单个字符 <字符串>[M] 切片:返回字符串中一段字符子串 <字符串>[M:N:K] 字符串格式化使用.format()方法

  7. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  8. 【python学习笔记】5.条件、循环和其他语句

    [python学习笔记]5.条件.循环和其他语句 print: 用来打印表达式,不管是字符串还是其他类型,都输出以字符串输出:可以通过逗号分隔输出多个表达式 import: 导入模块     impo ...

  9. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

随机推荐

  1. C# 实现酒店房态图

    酒店管理系统最重要和实用的是能够及时.一目了然的反应房间状态的房态图,之前在开发一个的酒店管理系统中做了一个还算实用的房态图,现在分享下: 鼠标移到每个房间上面,可显示提示信息: 还可以自定义设置不同 ...

  2. js字符串转为日期格式

    1. <script type="text/javascript"> //字符串转日期格式,strDate要转为日期格式的字符串 function getDate(st ...

  3. WPF 依赖属性

    依赖属性,简单的说,在WPF控件应用过程中,界面上直接可以引用的属性 如:<Button Content="aaa"></Button> Content称为 ...

  4. android Bundle savedInstanceState用途

    经常会出现用户按到home键,退出了界面,或者安卓系统意外回收了应用的进程,这种情况下,使用Bundle savedInstanceState就可以用户再次打开应用的时候恢复的原来的状态 (以下转自: ...

  5. linux下遇见mysql启动报2002错误解决办法

    前言:目前问题解决了,但是仍不知道是什么原因造成的,在出现问题前安装uWSGI后,mysql就出现这个问题的,哪位大侠说说这是怎么回事? 正文:Linux 下 Mysql error 2002 错误解 ...

  6. 【转载】Linux中常用操作命令

    说明:开始学习linux系统,为了方便查看,特转载一篇Linux中常用操作命令,转载地址:http://www.cnblogs.com/laov/p/3541414.html 正文: Linux简介及 ...

  7. Something Wrong or Something Right

    其实,你还可以和高中一样 其实,你还可以和高中一样,每天不情愿的早早起床,走在冬天漆黑的清晨里.食堂还没有开门,你就去商店买面包和牛奶,接着快步走进教学楼,轻声咒骂一声老师要求的时间太早,然后打开一本 ...

  8. Java集合之泛型的使用

    Java集合之泛型的使用 泛型提供了一种轻便灵活的数据操作,数据的安全性相对提高. 泛型提供了对列表元素的约束条件,比如ArrayList有序链表,可存储任意类型的元素. 此处构建一个ArrayLis ...

  9. 离散信源的分类和数学模型&&离散无记忆信源的熵

    1.离散信源的分类和数学模型 在离散时间发出离散符号的信源称为离散信源.如果信源符号集为有限集,则称为有限离散信源.如果信源符号集为无限可数集,则称为无限离散信源. 离散无记忆信源的N次拓展源:设信源 ...

  10. Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

    的最佳方案 标签: Android屏幕旋转AsyncTaskProgressDialog 2014-07-19 09:25 39227人阅读 评论(46) 收藏 举报 分类: [android 进阶之 ...