13.高级变量类型
3)列表
(1)列表的定义
List(列表) 是Python中使用最频繁的数据类型,在其他语言中通常叫做数组,专门用于存储一串信息
列表用“[]”定义,数据之间使用“,”分隔
列表的索引从0开始,索引就是数据在列表中的位置编号,索引又可以被称为下标
(2)列表常用操作
快速调出列表的使用方法:
在ipython3中定义一个列表,例如:name_list = []
输入name_list.按下TAB键,ipython会提示列表能够使用的方法如下:
①取值,列表也有索引、切片、迭代遍历
取列表中某个数据的某个字符
连续取值,包含开始,不包含结束(与字符串类似):
起始加步长
②修改数据
修改字符串时,需要重新赋值。修改列表是可以直接修改,列表是可变类型的变量
③增加数据(append、insert、extend)
注意:使用extend添加字符串时,字符串会被拆开。
extend只适用于合并列表
④删除数据(remove、pop、clear)
pop()方法弹出的数据,可以被其它变量接收
列表中有多个相同数据时,remove会删除第一个符合的数据
⑤关键字(科普)
使用del关键字(delete) 同样可以删除列表中元素
del关键字本质上是用来将一个变量从内存中删除的,如果使用del关键字将变量从内存中删除,后续的代码就不能再使用这个变量了
在日常开发中,要从列表删除数据,建议使用列表提供的方法
⑥统计:
len可以统计列表中数据的数量
count可以统计某个数据在元祖中出现的次数
⑦排序
(3)迭代遍历
遍历就是从头到尾依次从列表中获取数据,在循环体内部针对每一个元素,执行相同的操作,在Python中为了提高列表的遍历效率,专门提供的迭代iteration遍历。使用for就能够实现迭代遍历
for循环内部使用的变量 in 列表
顺序的从列表中依次获取数据,每一次循环过程中,数据都会保存在变量my_name中,在循环体内部可以访问到当前这一次获取到的数据
练习:让用户输入加法算式,计算结果
注意:迭代遍历时,不能删除列表内容,否则容易出错
删除列表中姓张的元素
原因分析:拿到第0个元素张三,判断姓张,删除数据。张无忌变成第0个元素,但第0个元素已经删过了,该检查第一个元素了。张桐变成第一个数据被删掉,张无忌成为漏网之鱼,同理,张聪也会被漏删。
问题解决:先将姓张的记到小本本上,再根据小本本删除。
(4)应用场景
尽管Python的列表中可以存储不同类型的数据,但是在开发中,更多的应用场景是:
①列表存储相同类型的数据
②通过迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作
使用迭代遍历过滤敏感词语:
4)元组
(1)元组的定义
①Tuple(元组)与列表类似,不同之处在于元组的元素不能修改。元组表示多个元素组成的序列,元组在Python开发中,有特定的应用场景
②元组用于存储一串信息,数据之间使用“,”分隔
③元组用“()”定义
④元组的索引从0开始,索引就是数据在元组中的位置编号
⑤创建空元组
⑥创建只有一个数据的元组
元组中只包含一个元素时,需要在元素后面添加“,”。 “()” 默认是运算符号,元素后面加“,”让python知道这是元组。
(2)元组常用操作
①查询元组支持的所有操作
在ipython3中定义一个元组,例如:info = ()。输入info.按下TAB键,ipython会提示元组能够使用的函数如下:
(a)info.count 某个数据在元组中出现的次数
(b)info.index 某个数据在元组中对应的索引下标
②取值
③切片
④取索引:已知该数据的内容,希望知道该数据的索引值
⑤统计计数:统计数据在元组中出现的次数
⑥统计长度:len可以统计列表中数据的数量
⑦元祖中的可变类型数据是可以被修改
(3)迭代遍历
取值就是从元组中获取存储在指定位置的数据
遍历就是从头到尾依次从元组中获取数据
在Python中,可以使用for迭代遍历所有非数字型类型的变量:列表、元组、字典以及字符串
语法:for 循环内部使用的变量 in 元组
提示:在实际开发中,除非能够确认元组中的数据类型,否则针对元组的迭代遍历需求并不是很多。因为元组中数据的数据类型一般不相同,无法进行拼接操作。例如上面的语句中:
打印姓名,需要使用语句print(“姓名是:%s” % item)
打印年龄,需要使用语句print(“年龄是:%d” % item)
打印身高,需要使用语句print(“年龄是:%f 米” % item)
三个参数不一样,无法使用迭代遍历操作
(4)应用场景
在开发中,元组主要的应用场景是:
①函数的参数和返回值,一个函数可以接收任意多个参数,或者一次返回多个数据。
有关函数的参数和返回值,在后续函数高级给大家介绍
②格式字符串,格式化字符串后面的“()”本质上就是一个元组
③让列表不可以被修改,以保护数据安全
三种代码的输出结果是一样的。
(5)元组和列表之间的转换
①使用list函数可以把元组转换成列表
语法:list(元组)
②使用 tuple 函数可以把列表转换成元组
语法:tuple(列表)