Python学习笔记——集合类型
2023-12-01 20:04:54
集合类型有两种不同的类型——可变集合(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
最新文章
- 2014 Multi-University Training Contest 9#1009
- bootstrap按钮组
- Delphi中的函数指针判断是否为空
- c# mvc使用 npoi下载 excel
- 2014 Asia AnShan Regional Contest --- HDU 5073 Galaxy
- getattr的作用是什么呢
- 20150625_Andriod_01_ListView1_条目选中
- SharePoint自动化系列——Add content type to list.
- [原创]PostgreSQL Plus Advanced Server监控工具PEM(二)
- MFC最大化显示任务栏
- sizeWithFont 不是线程安全。
- 深入理解Binder(二),Binder是什么?
- Python:如何得到Popen的输出?
- ios 异步多线程 获取数据
- Error Correct System(模拟)
- ListView嵌套ListView时发生:View too large to fit into drawing cache的问题
- 面向对象程序设计-C++_课时13初始化列表
- C#删除字符串最后一个字符
- RocketMQ4.3.x 史上配置最全详解,没有之一
- 用Vue.js搭建一个小说阅读网站
热门文章
- 从零自学Hadoop(02):环境准备
- 从零自学Hadoop(14):Hive介绍及安装
- javax.crypto.BadPaddingException: Given final block not properly padded 解决方法
- native2ascii.exe 字符转码与反转码
- PostgreSQL-psql
- Python简单爬虫入门二
- jmeter接口自动化集成
- C# DESC加密
- hadoop io PART1
- 基于移动端Reactive Native轮播组件的应用与开发详解