这次简单整理一下Python中 元组与列表 集合与字典 的相关内容~
序列类型有12个通用的操作符和函数
操作符 | 描述 |
x in s | 如果x是s的元素,返回True,否则返回False |
x not in s | 如果x不是s的元素,返回True,否则返回False |
s + t | 连接s和t |
s * n 或 n * s | 将序列s复制n次 |
s[i] | 索引,返回序列的第i个元素 |
s[i:j] | 分片,返回包含序列s第i到j个元素的子序列(不包含第j个元素) |
s[i:j:k] | 步骤分片,返回包含序列s第i个到j个元素以k为步数的子序列 |
len(s) | 序列s的元素个数(长度) |
min(s) | 序列s中的最小元素 |
max(s) | 序列s中的最大元素 |
s.index(x[,i[,j]]) | 序列s中从i开始到j位置中第一次出现元素x的位置 |
s.count(x) | 序列s中出现x的总次数 |
元组:
一旦创建不可被修改,在表达固定数据项、函数多返回值、多变量同步赋值i、循环遍历等情况下十分有用。Python中元组采用逗号和圆括号(可选)来表示。
列表方法
方法 | 说明 |
list.append(x) | 将元素x添加至列表尾部 |
list.extend(L) | 将列表L中所有元素添加至列表尾部 |
list.insert(index,x) | 在列表制定位置index处添加元素x |
list.remove(x) | 在列表中删除首次出现的制定元素 |
list.pop([index]) | 删除并返回列表对象指定位置的元素 |
list.clear() | 删除列表中所有元素,但保留列表对象 |
list.index(x) | 返回值为x的首个元素的下标 |
list.count(x) | 返回指定元素x在列表中的出现次数 |
list.reverse() | 对列表元素进行原地倒序 |
list.sort() | 对列表元素进行原地排序(升序、降序) |
list.copy() | 返回列表对象的浅拷贝 |
注:除list.copy()外,列表方法均不会改变列表的id,也不会新建列表
列表推导式:
新元素表达式 for临时变量
in 可迭代对象
if 条件表达式
集合:
集合数据类型是没有顺序的简单对象的聚集,且集合中元素不重复,元素类型只能是固定数据类型
Python集合数据类型包括可变集合对象(set)和不可变集合对象(frozenset)
集合的定义{x1,[x2,…,xn]}
{}表示空的dict,因为dict也使用花括号定义。空集为set()
集合类型的10个操作符
- 集合有四种基础运算方法,并,交,差,补
S|T 并运算, 返回一个新集合,包含在集合S和T中的所有元素
S&T 交运算,返回一个新集合,包含既在S中又在T中的集合
S-T 差运算, 返回一个新的集合,包含在集合S中但是不在集合T中的元素
S^T 补运算, 返回一个新集合,包含集合S和T中的不相同元素
- 集合有两种关系运算操作
S<=T或者S<T 关系运算,返回True/False,判断S和T的子集关系
S>=T或者S>T 关系运算,返回True/False,判断S和T的包含关系
- 集合由四种增强运算操作
S|=T 更新集合S,包含集合S和T中的所有元素
S&=T更新集合S,包含同时在集合S和T中的元素
S-=T 更新集合S,包含在集合S中,但是不在T中的元素
S^=T
集合类型主要用于三个场景:成员关系测试、元素去重和删除数据项
集合类型有10个操作函数或方法
函数或方法 | 描述 |
S.add(x) | 如果数据项x不在集合中,将x增加到s |
S.clear() | 移除S中所有数据项 |
S.copy() | 返回集合S的一个拷贝 |
S.pop() | 随机返回集合S中的一个元素,如果S为空,产生KeyError异常 |
S.discard(x) | 如果x在集合S中,移除该元素;如果x不在,不报错 |
S.remove(x) | 如果x在集合S中,移除该元素;不在产生KeyError异常 |
S.isdisjoint(T) | 如果集合S与T没有相同元素,返回True |
len(S) | 返回集合S元素个数 |
x in S | 如果x是S的元素,返回True,否则返回False |
x not in S | 如果x不是S的元素,返回True,否则返回False |
映射类型:是“键-值”数据项的组合,每个元素是一个键值对,即元素是(key,value),元素之间是无序的。键值对(key,value)是一种二元关系。在Python中,映射类型主要以字典(dict)体现
字典类型的基本概念
通过任意键信息查找一组数据中值信息的过程叫映射,Python语言中通过字典实现映射。Python语言中的字典可以通过大括号{}建立
{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}
其中,键和值通过冒号连接,不同键值对通过逗号隔开
- 字典:是一组键值对的数据结构。每个键对应于一个值。在字典中,键不能重复。根据键可以查询到值
- 对象的哈希值
- 字典的键只能使用不可变的对象,但字典的值可以使用不可变或可变的对象
字典打印出来的顺序与创建之初的顺序不同,这不是错误。字典是集合类型的延续,各个元素并没有顺序之分
函数和方法 | 描述 |
< d >.keys() | 返回所有的键信息 |
< d >.values() | 返回所有的值信息 |
< d >.items() | 返回所有的键值对 |
< d >.get(< key >,< default >) | 键存在则返回相应值,否则返回默认值 |
< d >.pop(< key >.< default > | 键存在则返回相应值,同时删除键值对,否则返回默认值 |
< d >.popitem() | 随机从字典中取出一个键值对,以元组(key,value)形式返回 |
< d >.clear() | 删除所有的键值对 |
del< d >[< key >] | 删除字典中某一个键值对 |
< key > in < d> | 如果键在字典中返回True,否则返回False |
字典类型的操作
- 通过中括号可以增加新的元素
- 直接使用大括号({})可以创建一个空的字典,并通过中括号([])向其增加元素
函数和方法 | 描述 |
< d >.keys() | 返回所有的键信息 |
< d >.values() | 返回所有的值信息 |
< d >.items() | 返回所有的键值对 |
< d >.get(< key >,< default >) | 键存在则返回相应值,否则返回默认值 |
< d >.pop(< key >,< default > | 键存在则返回相应值,同时删除键值对,否则返回默认值 |
< d >.popitem() | 随机从字典中取出一个键值对,以元组(key,value)形式返回 |
< d >.clear() | 删除所有的键值对 |
del < d >[< key >] | 删除字典中某一个键值对 |
< key > in < d > | 如果键在字典中返回True,否则返回False |
与其他组合类型一样,字典可以通过for…in语句对其元素进行遍历,基本语法结构如下:
for 变量名
in 字典名
语句块
字典是实现键值对映射的数据结构
- 字典是一个键值对的集合,该集合以键为索引,一个键信息只对应一个值信息;
- 字典中元素以键信息为索引访问
- 字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对
1.字典的访问操作
2.字典的视图对象
d.keys()
#返回字典d的键key的列表d.values()
#返回字典d的值value的列表d.items()
#返回字典d的(key,value)对的列表
3.判断字典是否存在
4.字典对象的长度和比较
- 通过内置函数len(),可以获取字典的长度(元素个数)
- 字典对象也支持比较运算符(<、<=、==、!=、>=、>),但只有 == 、!= 有意义
5.字典对象的方法
方法 | 说明 |
d.clear() | 删除所有元素 |
d.copy() | 浅拷贝字典 |
d.get(k) | 返回键k对应的值,如果key不存在,返回None |
d.get(k,v) | 返回键k对应的值,如果key不存在,返回v |
d.pop(k) | 如果键k存在,返回其值,并删除该项目;否则导致KeyError |
d.pop(k,v) | 如果键k存在,返回其值,并删除该项目;否则返回v |
d.setdefault(k,v) | 如果键k存在,返回其值;否则添加项目k=v,v默认为None |
d.update([other]) | 使用字典或键值对,更新或添加项目到字典d |