列表知识点
列表的应用场景
列表的格式
列表的常用操作(查找,修改,删除)
列表的循环遍历
列表的嵌套使用
一、列表的应用场景
二、列表的格式
[数据1, 数据2, 数据3,数据4…]
列表可以一次存储多个数据,且不同格式
三、列表的常用操作
1 查找:
下标
name_list = ['Tom', 'Lily', 'Rouse']
print(name_list)
print(name_list[0]) # Tom
print(name_list[1]) # Lily
print(name_list[2]) # Rouse
2.函数
index()
语意:返回指定数据所在位置的下标
语法:列表序列.index(数据, 开始位置下标, 结束位置下标)
# index(): 返回指定数据所在位置的下标
# 语法: 列表序列.index(数据, 开始位置下标, 结束位置下标)
name_list = ['Tom', 'Lily', 'Rouse']
print(name_list.index('Tom')) # 0
print(name_list.index('Tom', 0, 3)) # 0
print(name_list.index('Lily', 0, 3)) # 1
print(name_list.index('Rouse', 0, 3)) # 2
count(): 统计指定数据在当前列表中出现的次数
语法: 列表序列.count(数据, 开始位置下标, 结束位置下标)
# count(): 统计指定数据在当前列表中出现的次数
# 语法: 列表序列.count(数据, 开始位置下标, 结束位置下标)
name_list = ['Tom', 'Lily', 'Rouse']
print(name_list.count('Lily')) # 1
len(): 访问列表长度,即列表中数据的个数
语法: len(列表序列)
# len(): 访问列表长度,即列表中数据的个数
# 语法: len(列表序列)
name_list = ['Tom', 'Lily', 'Rouse']
print(len(name_list)) # 3
3.判断是否存在
in: 判断制定数据在某个列表序列,如果在返回True, 否则返回False
not in: 判断制定数据不在某个列表序列,如果不在返回True, 否则返回False
# in: 判断制定数据在某个列表序列,如果在返回True, 否则返回False
name_list = ['Tom', 'Lily', 'Rouse']
print('Tom' in name_list)
# not in: 判断制定数据不在某个列表序列,如果不在返回True, 否则返回False
name_list = ['Tom', 'Lily', 'Rouse']
print('Tom' not in name_list)
# in 案例:
name_list = ['Tom', 'Lily', 'Rouse']
name = input('请输入你要搜索的名字')
if name in name_list:
print(f'你输入的名字是{name}, 名字已经存在')
else:
print(f'你输入的名字是{name}, 名字不存在')
4. 修改列表数据
4.1. 增加数据
append()
语意:列表结尾追加数据
语法:列表序列.append(数据)
# append()
# 语意:列表结尾追加数据
# 语法:列表序列.append(数据)
name_list = ['Tom', 'Lily', 'Rouse']
name_list.append('jake')
print(name_list)
name_list.append(['xiao', 'zhang'])
print(name_list)
name_list.append(12)
print(name_list)
name_list.append([12, 89])
print(name_list)
extend()
语意:列表结尾增加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
语法:列表序列.extend(数据)
# extend()
# 语意:列表结尾增加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
# 语法:列表序列.extend(数据)
# 单个数据
name_list = ['Tom', 'Lily', 'Rouse']
name_list.extend('xiao')
print(name_list) # ['Tom', 'Lily', 'Rouse', 'x', 'i', 'a', 'o']
# 序列数据
name_list = ['Tom', 'Lily', 'Rouse']
name_list.extend(['xiao', 'zhang'])
print(name_list) # ['Tom', 'Lily', 'Rouse', 'xiao', 'zhang']
insert()
语意:指定位置增添数据
语法:列表序列.insert(位置下标, 数据)
# insert()
# 语意:指定位置增添数据
# 语法:列表序列.insert(位置下标, 数据)
name_list = ['Tom', 'Lily', 'Rouse']
name_list.insert(1, 'xiao')
print(name_list)
4.2 删除数据
del 目标
del (目标)
# del
# del 目标
# del (目标)
name_list = ['Tom', 'Lily', 'Rouse']
print(name_list)
del name_list[0]
print(name_list)
pop()
语意:删除指定下表数据,返回被删除的数据
语法:列表序列.pop(位置下标)
# pop()
# 语意:删除指定下表数据,返回被删除的数据
# 语法:列表序列.pop(位置下标)
name_list = ['Tom', 'Lily', 'Rouse']
print(name_list)
del_name = name_list.pop(1)
print(name_list)
print(del_name)
remove()
语意:删除列表中某个数据的第一个匹配项
语法:列表序列.remove(数据)
# remove()
# 语意:删除列表中某个数据的第一个匹配项
# 语法:列表序列.remove(数据)
name_list = ['Tom', 'Lily', 'Rouse']
name_list.remove('Rouse')
print(name_list)
clear()
语意:清空列表
语法:列表序列.clear()
# clear()
# 语意:清空列表
# 语法:列表序列.clear()
name_list = ['Tom', 'Lily', 'Rouse']
print(name_list)
name_list.clear()
print(name_list)
4.3 排序
reverse()
语意:逆置
语法:列表序列.reverse()
# reverse()
# 语意:逆置
# 语法:列表序列.reverse()
list1 = [1, 2, 3, 4, 5]
list1.reverse()
print(list1) # [5, 4, 3, 2, 1]
sort()
语意:排序(升序,降序),默认升序排序
语法:列表序列.sort(key=None, reverse=False)
其中 reverse表示排序规则, reverse=True降序, reverse=False升序(默认)
# sort()
# 语意:排序(升序,降序),默认升序排序
# 语法:列表序列.sort(key=None, reverse=False)
# 其中 reverse表示排序规则, reverse=True降序, reverse=False升序(默认)
list1 = [1, 2, 3, 4, 5]
print(list1)
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)
4.4 复制
copy()
# 4.4 复制
# copy()
name_list = ['Tom', 'Lily', 'Rouse']
list1 = name_list.copy()
print(name_list)
print(list1)
四、列表的循环遍历
- 列表循环遍历之while()
# 列表循环遍历之while()
name_list = ['Tom', 'Lily', 'Rouse']
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
- 列表循环遍历之for()
# 列表循环遍历之for()
name_list = ['Tom', 'Lily', 'Rouse']
for i in name_list:
print(i)
五、列表的嵌套使用
列表中包含其它子列表
# 列表中包含其它子列表
name_list = [['Tom', 'Lily', 'Rouse'],
['大一', '小二', '三丫'],
['牛大', '猴儿', '猪头']]
print(name_list)
案例:随机分配办公室
需求:8位老师,3个办公室,将8位老师随机分配到3个办公室
# 样例:随机分配办公室
# 需求:8位老师,3个办公室,将8位老师随机分配到3个办公室
'''
步骤:
1. 准备数据:
a. 8位老师--列表
b. 3个办公室--列表嵌套
2. 分配老师到办公室
**随机分配
把老师名字写入办公室列表
3. 验证是否分配成功
打印办公室分配详细数据
'''
import random
# 1. 准备数据
teachers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
offices = [[], [], []]
# 2.分配老师到办公室
for name in teachers:
# 列表追加数据--append(选中) entend insert
# 随机
num = random.randint(0, 2)
offices[num].append(name)
# # 3. 验证是否分配成功
i = 1
for office in offices:
# 打印办公室人数
print(f'办公室{i}的人数是{len(office)}, 老师分别是:')
# 打印老师名字
for name in office:
print(name)
i += 1