目录
列表
列表的应用场景
储存多个数据。
列表的格式
['数据1','数据2','数据3'...]
列表可以一次性存储多个数据,且可以为不同数据类型。但是为了方便后续的操作,尽量保持类型一致。
列表的常用操作
查找
1.下标
>>> name_list = ['Tom','Lily','Rose']
>>> name_list[0]
'Tom'
>>> name_list[1]
'Lily'
>>> name_list[2]
'Rose'
2.函数
index()/count()/
index():返回指定数据所在位置的下标。
快速体验
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.index('Lily',0,2)
1
注意查找的数据不存在报错。
count():统计指定数据在当前列表中出现的次数。
快速体验
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.count('Lily')
1
len():访问列表长度,即列表中数据的个数。
快速体验
>>> name_list = ['Tom','Lily','Rose']
>>> len(name_list)
3
判断是否存在
in:判断指定数在某个列表序列,如果在返回Ture,否则返回False
not in:与in相反
快速体验
>>> 'Lily' in name_list
True
>>> 'Lilys' in name_list
False
>>> 'lily' in name_list
False
>>> 'lily' not in name_list
True
案例:查找是否存在用户
# 创建列表
name_list = ['Tom','Lily','Rose']
# 用户输入想查找的人名
name = input('输入你想查找的人名:')
# 判断找到人是否存在
if name in name_list:
print('这个人在系统里面')
else:
print('这个人不在系统中')
输出结果
输入你想查找的人名:Lily
这个人在系统里面
增加
作用:增加指定数据到列表中。
append():列表追加数据。
1.语法
列表序列.append(数据)
2.体验
# 增加单个值
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.append('溏心蛋')
>>> name_list
['Tom', 'Lily', 'Rose', '溏心蛋']
# 增加列表
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.append(['溏心蛋','小鹿'])
>>> name_list
['Tom', 'Lily', 'Rose', ['溏心蛋', '小鹿']]
extend():列表结尾追加数据,如果是一个序列,则将中国薛烈的数据逐一添加到列表。
1.语法
列表序列.extend(数据)
2.快速体验
# 单个数据
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.extend('溏心蛋')
>>> name_list
['Tom', 'Lily', 'Rose', '溏', '心', '蛋']
# 序列数据
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.extend(['溏心蛋'])
>>> name_list
['Tom', 'Lily', 'Rose', '溏心蛋']
insert():指定位置新增数据。
1.语法
列表序列.insert(位置下标,数据)
2.快速体验
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.insert(1,'溏心蛋')
>>> name_list
['Tom', '溏心蛋', 'Lily', 'Rose']
删除
del:语法:del 目标
快速体验
# 删除列表
>>> name_list = ['Tom','Lily','Rose']
>>> del name_list
>>> name_list
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'name_list' is not defined #报错:函数没有被定义
# 删除指定数据
>>> name_list = ['Tom','Lily','Rose']
>>> del name_list[1]
>>> name_list
['Tom', 'Rose']
pop():删除指定下标数据,如果没有指定,默认删除最后一个数据。会返回删除值。
1.语法
列表.pop(指定下标)
2.快速体验
# 指定下标
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.pop(1)
'Lily'
>>> name_list
['Tom', 'Rose']
# 不指定下标
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.pop()
'Rose'
>>> name_list
['Tom', 'Lily']
remove:删除指定数据
1.语法
remove(数据)
2.快速体验
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.remove('Lily')
>>> name_list
['Tom', 'Rose']
clear():清空列表
1.语法
clear(别表名称)
2.快速体验
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.clear()
>>> name_list
[]# 空列表
修改
修改指定下标数据
>>> name_list = ['Tom','Lily','Rose']
>>> name_list[0] = '溏心蛋'
>>> name_list
['溏心蛋', 'Lily', 'Rose']
reverse():逆置
>>> name_list = ['Tom','Lily','Rose']
>>> name_list.reverse()
>>> name_list
['Rose', 'Lily', 'Tom']
sort():排序
1.语法
列表.sort(key=None,reverse=False)
列表.sort(key=None,reverse=False)
# reverse表示序列排序规则,reverse = Ture 降序,reverse = False 升序(默认)
2.快速体验
>>> a_list = [1,5,2,3,7,6]
>>> a_list.sort()
>>> a_list
[1, 2, 3, 5, 6, 7]
复制
copy():复制一个函数并返回。
>>> name_list = ['Tom','Lily','Rose']
>>> name = name_list.copy()
>>> name
['Tom', 'Lily', 'Rose']
列表的循环遍历
遍历:依次访问列表中的每一个值
1. while
name_list = ['Tom','Lily','Rose']
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
执行结果
Tom
Lily
Rose
2.for
name_list = ['Tom','Lily','Rose']
for name in name_list:
print(name)
执行结果
name_list = ['Tom','Lily','Rose']
for name in name_list:
print(name)
对比可得,for循环列表比while更简单方便,所以在遇到遍历列表时,一般用for更好、
列表的嵌套使用
所谓列表嵌套指的就是一个列表里面包含了其他的子列表。
应用:有三个班级,每个班有3个人
name_list =[['小名','小张','小红'],['Tom','Lily','Rose'],['小羊','小鹿','溏心蛋']]
for name in name_list:
print(name)
运行结果
['小名', '小张', '小红']
['Tom', 'Lily', 'Rose']
['小羊', '小鹿', '溏心蛋']
现在要打印小羊
>>> name_list =[['小名','小张','小红'],['Tom','Lily','Rose'],['小羊','小鹿','溏心蛋']]
>>> name_list[2][0]
'小羊'
综合应用
需求:有三个办公室,8位老师随机分配到3个办公室
import random
# 随机分配办公室
# 准备数据
# 八位老师
teachers = ['A','B','C','D','E','F','G']
# 3个办公室
offices = [[],[],[]]
# 分配教室
# 随机分配
for teacher in teachers:
num = random.randint(0,2)
offices[num].append(teacher)
# 验证分配是否成功
# 打印
for office in offices:
print(f'办公室的人数是{len(office)}')
执行结果
办公室的人数是2
办公室的人数是2
办公室的人数是3