3. 列表、元组、字典、集合与字符串
3.1 列表与列表推导式
3.1.1 创建列表、下标访问
3.1.1.1 简介
列表:用来存放若干个元素的容器类对象,列表中的每一个元素的类型可以不同
空列表:[]
3.1.1.2 创建列表
3.1.1.3 使用下标访问列表中的元素
列表中的元素是有顺序的,下标从0
开始
3.1.2 列表常用方法
3.1.2.1 append、insert、extend
append:在列表的尾部追加一个元素
insert:向列表的指定下标位置插入元素
extend:将另一个列表或可迭代对象
的元素一次性全部追加到当前列表的尾部
3.1.2.2 pop、remove
pop:弹出并返回指定下标位置的元素,如果参数为空,则弹出并返回最后一个元素,如果列表为空,调用该方法会报错
remove:删除指定元素在列表中的首次
出现,没有返回值
,如果列表中没有指定元素,则报错
3.1.2.3 count、index
count:返回指定元素在列表中出现的次数
index:返回指定元素在列表中首次
出现的下标,如果列表中没有指定元素,报错
3.1.2.4 sort、reverse
sort:对列表中的元素进行排序,默认升序,没有返回值
常用参数:
1.key:指定排序规则,必须是可调用对象
2.reverse:boolean 型,true 表示逆序,默认升序
reverse:将列表中的元素首尾交换,没有返回值
choice:在指定若干个元素中挑选指定数量的元素,可以重复
sample:在指定若干个元素中挑选指定数量的元素,不可以重复
注:
1. 这两个方法会直接修改原列表
2. 内置函数 sorted、reversed 均有返回值,reversed 返回 reversed 对象
3. Python 中,如果方法没有返回值,默认返回 null
3.1.3 列表推导式、切片操作
3.1.3.1 列表推导式
列表推导式通常与循环结构等价
嵌套的列表推导式需要从最外层往内层看
3.1.3.2 切片操作
3.1.3.2.1 定义
切片是用来获取列表、元组、字符串等有序序列
中部分元素的一种操作
3.1.3.2.2 表现形式
有序序列[start : end : step]
start:切片开始位置,默认为 0,包含开始位置
end:切片结束位置,默认为序列长度,不包含结束位置
step:步长,默认为 1
正整数:start 应在 stop 左侧,从前往后切
负整数:start 应在 stop 右侧,从后往前切
3.2 元组与生成器表达式
单个元素的元组:(1,)
3.2.1 创建元组
可以通过 tuple() 函数像列表那样把列表、字典、集合、字符串以及 range 对象、map 对象、zip 对象或其他类似对象转化为元组。
3.2.2 特点
- 轻量级列表,
元组不可变
,没有像列表那样修改元素的方法
- 访问速度更快,开销更小
- 安全性高
- 可作为
字典的键
,也可作为集合的元素
3.2.3 生成器表达式
生成器表达式形式上与列表推导式类似,但生成器表达式返回生成器对象
,而列表推导式返回列表
生成器对象与 map、zip、enumerate、filter 方法相同,均具有惰性求值
(包含多个元素,要一个,给一个,而且,每一个元素只能访问一次)特点
注:如果生成器表达式作为另一个方法的参数,生成器最外层的一对括号可以省略
3.2.4 序列解包
3.2.4.1 定义
用于将赋值号右边的多个值赋值给左边的多个变量,要求赋值号两边数量相等,这种赋值方式为同时赋值
同时赋值
的例子如下:
x, y = y, x
程序执行过程如下:
同时取出 x,y 的值,然后同时将 x 赋值给 y,将 y 赋值给 x
该程序用于交换两变量的值
3.3 字典
空字典:{}
3.3.1 创建字典
3.3.2 字典元素访问
字典是无序的,但支持下标(键)访问,列表的下标是索引
3.3.3 字典元素修改、添加与删除
3.3.3.1 修改、添加
3.3.3.2 删除
3.3.3 特点
只能包含数字、字符串、元组等不可变类型的数据,包含列表等可变数据的元组
也不能作为集合的元素
3.4 集合
定义一个空集合:s = set()
3.4.1 特点
- 无序,元素存储顺序与添加顺序不一致
- 可变
- 元素不允许重复
- 只能包含数字、字符串、元组等
不可变类型
的数据,包含列表
等可变数据的元组
也不能作为集合的元素
- 不支持使用下标直接访问特定位置上的元素
-
不支持
random 中的 choice 函数从集合中随机选取元素
-
支持
random 模块中的 sample 函数随机选取部分元素
3.4.2 常用方法
3.4.2.1 add、update
add:向集合中添加元素,参数为元素
,如果元素不在集合中,则添加;如果在集合中,则忽略本次操作
update:向集合中添加元素,参数为集合
,求二者并集
3.4.2.2. pop、remove、discard
pop:随机删除并返回删除的一个元素,空集合报错
remove:删除指定元素,元素不存在,抛出异常
discard:删除指定元素,元素不存在,不会抛出异常
3.4.3 集合运算
3.5 字符串
3.5.1 特点
不可变
3.5.2 常用方法
3.5.2.1 encode
encode:将字符串编码为字节串,默认utf-8
字节串:可存入二进制文件或在网络中进行传输
字节串.decode:解码格式需要跟编码格式保持一致
3.5.2.2 format
format:字符串格式化
3.5.2.3 index、rindex、count
index:返回字符串在当前字符串中首次
出现的位置
rindex:返回字符串在当前字符串中最后一次
出现的位置
count:返回字符串在当前字符串中出现的次数
3.5.2.4 replace
replace:返回替换指定字符串之后的新字符串
3.5.2.5 maketrans、translate
maketrans:通过两个等长
字符串创建映射表,建立两字符串字符之间的一一映射
translate:通过传入映射表,使用映射表中的对应关系,对字符串中的字符进行替换,并返回新字符串
3.5.2.6 ljust、rjust、center
参数列表:
- 指定字符串长度
- 指定填充符号
ljust:字符串左对齐
,如果长度没有达到指定字符串长度,右边
用指定填充符号填充
rjust:字符串右对齐
,如果长度没有达到指定字符串长度,左边
用指定填充符号填充
center:字符串居中
,如果长度没有达到指定字符串长度,两边
用指定填充符号填充
3.5.2.7 split、rsplit
参数列表:
- str:分隔符
- maxsplit:最大分割次数
split:使用指定分隔符对字符串从左到右
进行分割,默认分隔符为空白字符(空格、Tab、换行符)
注:如果采用默认参数,字符串中有多个连续的空白字符的情况下,将这些连续的空白字符作为一个整体进行分割
rsplit:使用指定分隔符对字符串从右到左
进行分割,默认分隔符为空白字符(空格、Tab、换行符)
3.5.2.8 join
join:使用指定连接符连接容器类对象的字符串元素
3.5.2.9 lower、upper、capitalize、title、swapcase
lower:字符串中所有字母变为小写
upper:字符串中所有字母变为大写
capitalize:字符串的首字母
大写
title:字符串中每个单词的首字母大写
swapcase:字符串中的字母大小写转换
3.5.2.10 startswith、endswith
参数列表:参数可以为单个字符串,表示是否以指定字符串开头/结尾,也可以是多个字符串组成的元组
,表示是否以指定的某一个字符串开头/结尾
3.5.2.11 strip、rstrip、lstrip
strip:删除字符串两侧
指定字符
rstrip:删除字符串右侧
指定字符
lstrip:删除字符串左侧
指定字符
其他文章
Python 数据分析与数据可视化(一)Python 开发环境搭建与编码规范
Python 数据分析与数据可视化(二)数据类型、运算符与内置函数
Python 数据分析与数据可视化(三)列表、元组、字典、集合与字符串
Python 数据分析与数据可视化(四)文件操作
Python 数据分析与数据可视化(五)线性代数基本知识
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算
Python 数据分析与数据可视化(七)pandas数据分析实战
Python 数据分析与数据可视化(八)sklearn机器学习实战
Python 数据分析与数据可视化(工具篇)课程所需扩展库安装
Python 数据分析与数据可视化(实践篇)泰坦尼克号旅客生存预测