一、列表的应用场景:
一次性存储多个数据,且可以为不同的数据类型
二、列表的格式:
[数据1, 数据2, 数据3, …]
三、列表的常用操作
常用操作有:增、删、改、查
3.1 查找
3.1.1 下标
name_list = ['Tom', 'Jack', 'rose']
print(name_list[0]) #Tom
print(name_list[1]) #Jack
print(name_list[2]) #rose
3.1.2 查找函数
- index():返回指定数据所在位置的下标
语法:列表序列.index(数据, 开始下标, 结束下标)
name_list = ['Tom', 'Jack', 'rose']
print(name_list.index('Tom', 0, 2)) #0
- count():统计指定数据在当前列表中出现的次数,没有则返回0
name_list = ['Tom', 'Jack', 'rose']
print(name_list.count('Tom')) #1
- len():访问列表长度,即列表中数据的个数
name_list = ['Tom', 'Jack', 'rose']
print(len(name_list)) #3
3.1.3 判断是否存在
- in:判断指定数据是否在某个列表序列中,有则返回true,无则返回false
- not in:判断指定数据是否不在某个列表序列中,有true,无false
name_list = ['Tom', 'Jack', 'rose']
print('Tom' in name_list) #true
print('LIly' not in name_list) #true
案例:
需求:查找用户输入的名字是否已经存在
name_list = ['Tom', 'Jack', 'rose']
name = input('请输入用户名')
if name in name_list:
print(f'您输入的用户名{name}已存在')
else:
print('用户名未注册,可以输入')
3.2 增加
作用:增加指定数据到列表中
列表是可变数据类型
- append():列表结尾追加数据
语法:列表序列.append(数据),如果追加的数据是一个列表序列,则追加整个序列到列表的结尾
name_list = ['Tom', 'Jack', 'rose']
name_list.append([11, 22]) #['Tom', 'Jack',‘rose’,[11, 22]]
- extend():列表结尾追加数据,如果数据是一个序列(列表序列、字符串序列等),则将这个序列的数据逐一添加到列表
name_list = ['Tom', 'Jack', 'rose']
name_list.extend('Lily') #增加字符串序列
print(name_list)
#['Tom', 'Jack', 'rose', 'L', 'i', 'l', 'y']
name_list.extend(['Lily', 'marry']) #增加列表序列
print(name_list)
#['Tom', 'Jack', 'rose', 'lily', 'marry']
- insert():指定位置新增数据
语法:列表序列.insert(位置下表, 数据)
name_list.insert(1, 'aaa') #添加到下标为1的位置
print(name_list)
#['Tom', 'aaa', 'Jack', 'rose']
3.3 删除
- del
语法:del 目标或del(目标) del name_list/del(name_list)
还可以删除指定下标的数据:del name_list[0]
- pop():删除指定下标的数据(默认为最后一个),并返回被删除的数据
语法:列表序列.pop(下标)
- remove():移出列表中某个数据的第一个匹配项
语法:列表序列.remove(数据)
- clear():清空列表,返回的是一个空列表
3.4 修改
- 修改指定下标数据
name_list[0] = 'aaa'
print(name_list)
# ['aaa', 'Jack', 'rose']
- 逆置/逆序:reverse()
list1 = [1, 2, 5, 3, 4]
list1.reverse()
print(list1)
# [4, 3, 5, 2, 1]
- 排序:sort()
语法:列表序列.sort(key=None, reverse=false)
reverse表排序规则,reverse=True降序,reverse=False升序(默认)
list1 = [1, 2, 4, 3, 5]
list1.sort(reverse=True) #降序
print(list1)
# [5, 4, 3, 2, 1]
3.5 复制
copy()
list1 = [1, 2, 3]
list2 = list1.copy()
print(list2) #[1, 2, 3]
四、列表的循环遍历
遍历:依次按顺序访问到序列的每一个数据
4.1 while遍历
name_list = ['Tom', 'Marry', 'Lily']
i = 0
while i < len(name_list): #len(name_list)为3
print(name_list[i]) #分别是name_list[0]—name_list[3]
i += 1
4.2 for遍历
for语句遍历代码少于while遍历,优先使用for遍历
name_list = ['Tom', 'Marry', 'Lily']
for i in name_list:
print(i)
五、列表嵌套
列表嵌套指的是一个列表里面包含了其他子列表
应用:存储三个班的学生姓名,且每个班级的学生姓名在一个列表中。
name_list = [['Tom', 'Lily', 'Marry'], ['张三', '李四', '王五'], ['a', 'b', 'c']]
# 列表嵌套时查询数据
print(name_list[0][1]) #LIly 拿到的是第一个子列表中的第二个数据
六、综合应用–随机分配办公室
需求:有三个办公室,8位老师随机分配到3个办公室
import random #随机模块
offices = [[], [], []]
teachers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
# 分配老师到办公室,取到每个老师放到办公室列表---遍历老师列表数据
for name in teachers:
# 随机列表追加数据--append,extend,insert
num = random.randint(0, 2)
offices[num].append(name)
# print(offices)
# 验证是否分配成功
i = 1
for office in offices:
# 打印办公室人数---子列表数据的个数:len()
print(f'办公室的人数是{len(office)},老师分别是:')
# 打印老师的名字,每个里的名字个数不同--遍历
for name in office:
print(name)
i += 1
本文详细介绍了Python中列表的应用场景、格式及各种操作,包括查找、增加、删除、修改和复制。还探讨了列表的循环遍历、嵌套以及在实际问题中的应用,如随机分配办公室的示例。
380

被折叠的 条评论
为什么被折叠?



