python常用数据类型操作-集合
2018-03-26 15:06
369 查看
该总结来源于网络王顺子的课程课件
与数学中集合的概念类似,可对其进行交、并、差、补等逻辑运算
分为可变集合和非可变集合
set为可变集合,可进行增,删,改
frozenset为不可变集合,创建好之后, 无法增删改
s ={1,2,3,4}
s =set(iterable)
其中iterable可以是字符串、列表、元组、字典等
但是为dict时,只会获取提Key作为set的元素
集合推导式
s= set(x**2 for x in range(1, 10) if x % 2 == 0)
s= {推导式}
不可变集合frozenset
fs =frozenset(iterable)
其中iterable可以是字符串、列表、元组、字典等
但是为dict时,只会获取提Key作为set的元素
集合推导式
s = frozenset(x**2 for x in range(1, 10) if x% 2 == 0)
注意
1. 创建一个空集合时, 需要使用set() 或者 frozenset(), 不能使用 s = {}会被识别成为字典
2. 集合中的元素, 必须是可哈希的值
如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的
暂时理解为 不可变类型
3. 如果集合中的元素值出现重复, 则会被合并为1个
增
s.add(element)
注意:必须保证添加的元素是可哈希的值
删
s.remove(element)
指定删除set对象中的一个元素
如果集合中没有这个元素,则返回一个错误
s.discard(element)
指定删除集合中的一个元素
若没有这个元素,则do nothing
s.pop(element)
随机删除并返回一个集合中的元素
若集合为空,则返回一个错误
s.clear()
清空一个集合中的所有元素
改
元素为不可变类型, 不能修改
查
无法通过索引或key进行查询
1. 通过 for in 进行遍历
2. 通过迭代器进行访问
不可变集合
不能增删改
查
1. 通过 for in 进行遍历
2. 通过迭代器进行访问
intersection(Iterable)
字符串,只判定字符串中的非数字
列表
元组
字典,值判定key
集合
...
逻辑与 '&'
intersection_update(…)
交集计算完毕后, 会再次赋值给原对象,会更改原对象,所以, 只适用于可变集合
并集
union(),返回并集
逻辑或 '|',返回并集
update(),更新并集
差集
difference()
算术运算符减 ‘-‘
difference_update()
判定
isdisjoint()两个集合不相交
issuperset()一个集合包含另一个集合
issubset()一个集合包含于另一个集合
注意
可变与不可变集合混合运算, 返回结果类型以运算符左侧为主
1、概念
无序的, 不可随机访问的, 不可重复的元素集合与数学中集合的概念类似,可对其进行交、并、差、补等逻辑运算
分为可变集合和非可变集合
set为可变集合,可进行增,删,改
frozenset为不可变集合,创建好之后, 无法增删改
2、定义
可变集合sets ={1,2,3,4}
s =set(iterable)
其中iterable可以是字符串、列表、元组、字典等
但是为dict时,只会获取提Key作为set的元素
集合推导式
s= set(x**2 for x in range(1, 10) if x % 2 == 0)
s= {推导式}
不可变集合frozenset
fs =frozenset(iterable)
其中iterable可以是字符串、列表、元组、字典等
但是为dict时,只会获取提Key作为set的元素
集合推导式
s = frozenset(x**2 for x in range(1, 10) if x% 2 == 0)
注意
1. 创建一个空集合时, 需要使用set() 或者 frozenset(), 不能使用 s = {}会被识别成为字典
2. 集合中的元素, 必须是可哈希的值
如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的
暂时理解为 不可变类型
3. 如果集合中的元素值出现重复, 则会被合并为1个
3、常用操作
3.1 单一集合操作
可变集合增
s.add(element)
注意:必须保证添加的元素是可哈希的值
删
s.remove(element)
指定删除set对象中的一个元素
如果集合中没有这个元素,则返回一个错误
s.discard(element)
指定删除集合中的一个元素
若没有这个元素,则do nothing
s.pop(element)
随机删除并返回一个集合中的元素
若集合为空,则返回一个错误
s.clear()
清空一个集合中的所有元素
改
元素为不可变类型, 不能修改
查
无法通过索引或key进行查询
1. 通过 for in 进行遍历
2. 通过迭代器进行访问
不可变集合
不能增删改
查
1. 通过 for in 进行遍历
2. 通过迭代器进行访问
3.2集合之间操作
交集intersection(Iterable)
字符串,只判定字符串中的非数字
列表
元组
字典,值判定key
集合
...
逻辑与 '&'
intersection_update(…)
交集计算完毕后, 会再次赋值给原对象,会更改原对象,所以, 只适用于可变集合
并集
union(),返回并集
逻辑或 '|',返回并集
update(),更新并集
差集
difference()
算术运算符减 ‘-‘
difference_update()
判定
isdisjoint()两个集合不相交
issuperset()一个集合包含另一个集合
issubset()一个集合包含于另一个集合
注意
可变与不可变集合混合运算, 返回结果类型以运算符左侧为主
相关文章推荐
- python实操(5):python数据类型及常用操作,数字、字符串、元组、列表、字典、集合
- python常用数据类型操作-字典
- 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型
- python笔记二:常用数据类型操作
- python常用数据类型操作-字符串
- Python数据类型及常用集合
- python常用数据类型操作-列表
- python数据类型_字符串常用操作(详解)
- python常用数据类型操作-数值篇
- VC++常用数据类型及其操作详解
- 转载:VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解及Unicode编程
- VC++常用数据类型及其操作详解 - TMD 程序员宁有种乎? - 博客园
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解