目标:
- 列表的应用场景
- 列表的格式
- 列表的常用操作
- 列表的循环遍历
- 列表的嵌套使用
1 列表的应用场景
思考1:有一个人的姓名(TOM)怎么书写存储程序?
答:变量
思考2:如果一个班级100人,每个人的姓名都要存储,如何书写程序?声明100个变量吗?
答:列表即可,列表一次性可以存储多个数据。
2 列表的格式
# [数据1,数据2,数据3,.....]
# 列表可以一次性存储多个数据,且可以为不同数据类型
3 列表的常用操作
下标:
name_list = ['tom', 'li', 'rose']
print(name_list[0]) # tom
print(name_list[1]) # li
print(name_list[2]) # rose
3.1 查找
3.1.1 函数
index()—返回指定数据所在位置的下标,找不到则报错。
count()—统计指定数据在当前列表中出现的次数
len():访问列表长度,即列表中的数据个数
例子如下:
# 1,index()---返回指定数据所在位置的下标,找不到则报错
# 语法:列表序列.index(数据,开始位置下标,结束位置下标)
name_list = ['tom', 'jake', 'rose']
print(name_list.index('tom', 0, 2)) # 0
# 2,count()---统计指定数据在当前列表中出现的次数
print(name_list.count('rose')) # 1
# 3,len():访问列表长度,即列表中数据的个数
print(len(name_list)) # 3
3.1.2 判断是否存在
in:判断指定数据是否在当前列表中,在返回True,不在返回False
not in :判断指定数据是否不在当前列表中,不在返回True,在返回False
例子如下:
name_list = ['tom', 'jake', 'rose']
print('rose' in name_list) # True
print('lis' in name_list) # False
# not in
name_list = ['tom', 'jake', 'rose']
name = input('请输入您要搜索的名字:')
if name in name_list:
print(f'您输入的名字是{name},名字已经存在!')
else:
print(f'您输入的名字是{name},名字不存在!')
3.2 增加
作用:增加指定数据到列表中。
append()—列表结尾追加数据。
***语法:列表序列.append(数据)
***列表追加数据的时候,直接在原列表里追加了指定的数据,即修改了原列表,故列表为可变类型数据。
***如果append()追加的数据是一个序列,则追加整个序列到列表。
extend()—列表结尾追加数据。如果数据是一个序列,则这个序列的数据逐一添加到列表。
***语法:列表序列.extend(数据)
insert()—指定位置新增数据。
***语法:列表序列.insert(位置下标,数据)
***注意:这个下标是几,数据就填到哪个位置了。
例子如下:
#1,append()
name_list = ['tom', 'jake', 'rose']
name_list.append('wang')
print(name_list) # ['tom', 'jake', 'rose', 'wang']
name_list.append(['hon', 'ming'])
print(name_list) # ['tom', 'jake', 'rose', ['hon', 'ming']]
# 2,extend()
name_list.extend('rui') # ['tom', 'jake', 'rose', 'r', 'u', 'i']
print(name_list)
name_list.extend(['ho', 'ki']) # ['tom', 'jake', 'rose', 'ho', 'ki']
print(name_list)
# 3,insert()
name_list.insert(0, 'wangrui')
print(name_list)
# ['wangrui', 'tom', 'jake', 'rose']
3.3 删除
del()—
***语法:del 目标
***删除列表,删除指定下标的数据
***删除列表,再打印时显示报错
pop()—删除指定下标的数据(不指定下标,默认删掉的为最后一个),并返回被删除的这个数据。
***语法:列表序列.pop(下标)
remove()—移除列表中某个数据的第一个匹配项。
***语法:列表序列.remove(数据)
clear()—清空列表。清空之后,再次打印列表显示是个空表。
例子如下:
name_list = ['tom', 'jake', 'rose']
# 1,删除列表
# del name_list
# print(name_list) # 报错
# 2,删除指定数据
del name_list[0]
print(name_list) # ['jake', 'rose']
del_name = name_list.pop(0)
print(del_name) # tom
print(name_list) # ['jake', 'rose']
name_list.remove('tom')
print(name_list) # ['jake', 'rose']
name_list.clear()
print(name_list) # []
3.4 修改
修改指定下标的数据。
例子:
name_list = ['tom', 'jake', 'rose']
name_list[0] = 'rui'
print(name_list)
# ['rui', 'jake', 'rose']
逆置:reverse()
***即按原来的顺序倒过来
排序:sort()
***语法:列表序列.sort(key=None,reverse=False)
***reverse表示排序规则,reverse=True降序,reverse=False升序(默认)
***升序:从小到大====降序:从大到小
num_list = [1, 2, 3, 4, 5, 6, 8]
num_list.reverse()
print(num_list) # [8, 6, 5, 4, 3, 2, 1]
num_list = [1, 2, 3, 4, 5, 6, 8]
num_list.sort()
print(num_list)
# [1, 2, 3, 4, 5, 6, 8]
# 默认升序,从小到大
num_list.sort(reverse=True) # True为降序
print(num_list)
# [8, 6, 5, 4, 3, 2, 1]
3.5 复制
函数:copy()
***工作中一般把复制的数据存储到一个变量里
num_list = [1, 2, 3, 4, 5, 6, 8]
num_list2 = num_list.copy()
print(num_list2)
# [1, 2, 3, 4, 5, 6, 8]
4 列表的循环遍历
需求:依次打印列表中的各个数据。
while
name_list = ['tom', 'jake', 'rose']
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
"""
输入结果:
tom
jack
rose
"""
for
name_list = ['tom', 'jake', 'rose']
for j in name_list:
print(j)
while和for都遍历出来了,但是我们一般用for遍历,因为代码少。
5 列表嵌套
所谓列表嵌套指的是一个列表里包含了其他子列表。
应用场景:要存储班级1.2.3个班级学生姓名,且每个班级的学生姓名在一个列表。
name_list = [['小红', '小明', '小兰'], ['tom', 'lim', 'kis'], ['张三', '李四', '王五']]
# 思考:如何找到李四?
# 第一步:按下标找到李四所在的列表
print(name_list[2]) #找出的是2列表
# 第二部:从李四所在的列表,再按下标找到数据李四。
print(name_list[2][1]) # 找出的是李四
6 列表小结
列表的格式—[数据,数据,。。。。]
常用操作方法—index(),len(),append(),pop(),remove()
列表嵌套