列表、元组、字典、集合与字符串
1. 列表与列表推导式
1.1 创建列表、下标访问
1.1.1 简介
列表:用来存放若干个元素的容器类对象,列表中的每一个元素的类型可以不同
空列表:[]
1.1.2 创建列表
1.1.3 使用下标访问列表中的元素
列表中的元素是有顺序的,下标从0
开始
1.2 列表常用方法
1.2.1 append、insert、extend
append:在列表的尾部追加一个元素
insert:向列表的指定下标位置插入元素
extend:将另一个列表或可迭代对象
的元素一次性全部追加到当前列表的尾部
1.2.2 pop、remove
pop:弹出并返回指定下标位置的元素,如果参数为空,则弹出并返回最后一个元素,如果列表为空,调用该方法会报错
remove:删除指定元素在列表中的首次
出现,没有返回值
,如果列表中没有指定元素,则报错
1.2.3 count、index
count:返回指定元素在列表中出现的次数
index:返回指定元素在列表中首次
出现的下标,如果列表中没有指定元素,报错
1.2.4 sort、reverse
sort:对列表中的元素进行排序,默认升序,没有返回值
常用参数:
1.key:指定排序规则,必须是可调用对象
2.reverse:boolean 型,true 表示逆序,默认升序
reverse:将列表中的元素首尾交换,没有返回值
choice:在指定若干个元素中挑选指定数量的元素,可以重复
sample:在指定若干个元素中挑选指定数量的元素,不可以重复
注:
1. 这两个方法会直接修改原列表
2. 内置函数 sorted、reversed 均有返回值,reversed 返回 reversed 对象
3. Python 中,如果方法没有返回值,默认返回 null
1.3 列表推导式、切片操作
1.3.1 列表推导式
列表推导式通常与循环结构等价
嵌套的列表推导式需要从最外层往内层看
1.3.2 切片操作
1.3.2.1 定义
切片是用来获取列表、元组、字符串等有序序列
中部分元素的一种操作
1.3.2.2 表现形式
有序序列[start : end : step]
start:切片开始位置,默认为 0,包含开始位置
end:切片结束位置,默认为序列长度,不包含结束位置
step:步长,默认为 1
正整数:start 应在 stop 左侧,从前往后切
负整数:start 应在 stop 右侧,从后往前切
2. 元组与生成器表达式
单个元素的元组:(1,)
2.1 创建元组
可以通过 tuple() 函数像列表那样把列表、字典、集合、字符串以及 range 对象、map 对象、zip 对象或其他类似对象转化为元组。
2.2 特点
- 轻量级列表,
元组不可变
,没有像列表那样修改元素的方法 - 访问速度更快,开销更小
- 安全性高
- 可作为
字典的键
,也可作为集合的元素
2.3 生成器表达式
生成器表达式形式上与列表推导式类似,但生成器表达式返回生成器对象
,而列表推导式返回列表
生成器对象与 map、zip、enumerate、filter 方法相同,均具有惰性求值
(包含多个元素,要一个,给一个,而且,每一个元素只能访问一次)特点,
2.4 序列解包
2.4.1 定义
用于将赋值号右边的多个值赋值给左边的多个变量,要求赋值号两边数量相等,这种赋值方式为同时赋值
同时赋值
的例子如下:
x, y = y, x
程序执行过程如下:
同时取出 x,y 的值,然后同时将 x 赋值给 y,将 y 赋值给 x
该程序用于交换两变量的值
3. 字典
3.1 创建字典
3.2 字典元素访问
字典是无序的,但支持下标(键)访问,列表的下标是索引
3.3 字典元素修改、添加与删除
3.3.1 修改、添加