一、列表基础知识:
1、列表的作用:
列表⼀次性可以存储多个数据,且可以为不同数据类型。
如:⼀个班级100位学⽣的姓名。
2、列表的格式:
[数据1, 数据2, 数据3, 数据4......]
3、列表的下标:
从0开始的整数
# 下标,从0开始
list1 = ['Amy', 'Lily', 'Tom', 'Lily']
print(list1[0]) # Amy
print(list1[2]) # Tom
4、列表的常用操作:
• 增加 append():列表结尾追加数据
extend():列表末尾追加另一个序列中的多个值
insert():指定位置新增数据
删 del
• pop():删除指定下标的数据(默认为最后⼀个),并返回该数据
remove():移除列表中某个数据的第⼀个匹配项
clear():清空列表
- 改 reverse():逆置
• sort():排序
-
查 index():返回指定数据所在位置的下标
count():统计指定数据在当前列表中出现的次数
len():访问列表长度,即列表中数据的个数 -
判断 in:判断指定数据在某个列表序列
not in:判断指定数据不在某个列表序列 - 拷贝 copy() :返回复制后的新列表
5、列表的循环
循环遍历列表元素
- while
- for
6、嵌套列表
格式:[ [数据1, 数据2…], [数据1, 数据2, …],[数据1, 数据2…] ]
二、列表实际操作
(1)、列表的常用操作:
1、增加
作用:增加指定数据到列表中
方法 | 描述 | 语法 |
append() | 增加指定数据到列表末尾,如果是一个序列,将作为一个整体追加到列表末尾。 | 列表序列.append(数据) |
extend() | 增加指定数据到列表末尾,如果是一个序列,则将序列的元素逐一增加到列表的末尾。 | 列表序列.extend(数据) |
insert() | 在列表指定位置新增数据 | 列表序列.insert(位置下标, 数据) |
append()
names = ['Amy', 'Lily', 'Tom']
names.append('linda')
print(names)
names.append(['zhangsan','lisi'])
print(names)
out:
append()追加数据,把序列作为一个整体!
extend()
# 列表.expend(data)
names = ['Amy', 'Lily', 'Tom']
# 增加一个字符序列
names.extend('Linda')
print(names)
# 增加一个列表序列
names.extend(['zhangsan','lisi'])
print(names)
out:
insert()
# 列表.insert(位置下标,数据)
names = ['Amy', 'Lily', 'Tom']
names.insert(1, 'Jack')
print(names)
out:
2、删
方法 | 描述 | 语法 |
del | 删除列表或指定数据 | del 列表/del 列表[下标] |
pop() | 删除指定下标的数据,不指定默认最后一个 | 列表序列.pop(下标) |
remove() | 移除列表中指定数据的第一个匹配项 | 列表序列.remove(数据) |
clear() | 清空列表 | 列表序列.clear() |
del
删除列表
names = ['Amy', 'Lily', 'Tom']
print(names)
del names
print(names) # NameError: name 'names' is not defined
out:
删除列表中指定元素
names = ['Amy', 'Lily', 'Tom']
del(names[1])
print(names) # ['Amy', 'Tom']
pop()
# 列表.pop(下标)
names = ['Amy', 'Lily', 'Tom']
# 用变量接收pop返回的被删除的数据
pop_name = names.pop(0)
print(names) # ['Lily', 'Tom']
print(pop_name)
out:
remove()
# 列表.remove(数据)
names = ['Amy', 'Lily', 'Tom', 'Lily']
names.remove('Lily')
print(names)
out:
pop仅删除列表中第一次匹配到的目标数据。
clear()
# 列表.clear()
names = ['Amy', 'Lily', 'Tom', 'Lily']
names.clear()
print(names)
out:
[]
clear清空了列表数据,留下一个空列表。
3、修改
修改指定下标数据
nums = [1, 3, 5, 4, 2]
# 修改指定下标数据
nums[1] = 6
print(nums) # [1, 6, 5, 4, 2]
reverse() 倒置列表元素排列顺序
# reverse 将列表数据从右到左倒置
nums = [1, 3, 5, 4, 2]
nums.reverse()
print(nums) # [2, 4, 5, 3, 1]
sort() 排序
"""
sort 排序,默认升序排序
列表.sort(key=none,reverse=False)
reverse 表示排序规则,当reverse=True,降序排序;当reverse=False,升序排序
"""
nums = [1, 3, 5, 4, 2]
nums.sort()
print(nums) # [1, 2, 3, 4, 5]
nums.sort(reverse=True)
print(nums) # [5, 4, 3, 2, 1]
4、查
根据下标进行数据查询
list1 = ['Amy', 'Lily', 'Tom', 'Lily']
print(list1[0]) # Amy
print(list1[2]) # Tom
index() 查找指定数据的下标
# index--返回指定下标的数据,如果未找到,抛出异常
# 语法:列表序列.index(数据,开始下标,结束下标)
print(list1.index('Tom')) # 2
print(list1.index('Lily', 2, 4)) # 3
count() 计数
list1 = ['Amy', 'Lily', 'Tom', 'Lily']
# count--统计当前数据在列表出现的次数
print(list1.count('Lily')) # 2
len() 统计列表长度
list1 = ['Amy', 'Lily', 'Tom', 'Lily']
# len--统计列表长度,即列表中数据的个数
print(len(list1)) # 4
5、判断
in是否存在
# in --判断指定数据是否存在于列表之中,存在,true;反之,false
list1 = ['Amy', 'Lily', 'Tom', 'Lily']
print('Amy' in list1) # True
print('Amys' in list1) # False
not in 是否不存在
# not in --判断指定数据是否存在于列表之中,不存在,true;反之,false
print('Amy' not in list1) # False
6、拷贝
copy() 返回复制后的新列表
# 复制
copy: 将列表的数据复制一份,一般用于涉及到数据删除的场景,先复制,再删除
'''
nums = [1, 3, 5, 4, 2]
print(nums.copy()) # [1, 3, 5, 4, 2]
copy_num = nums.copy()
print(id(nums)) # 1651303338504
print(id(copy_num)) # 1651303339016
(2)、列表循环
names = ['Amy', 'Lily', 'Tom', 'Ada']
i = 0
while i < len(names):
print(names[i])
i += 1
for i in names:
print(i)
(3)、列表嵌套
定义嵌套列表
list1 = [['张三', '李四' ,'王五'], ['lily', 'tom' ,'ada'], ['xiaohong', 'xiaolan' ,'xiaolv']]
查询嵌套列表
print(list1[0][2]) # 王五
print(list1[2][0])
嵌套列表使用案例:
'''
嵌套列表的使用案例:
将八位老师随机分配到三个办公室
1、准备数据 --八位老师、三个办公室
2、人员分配
随机分配,把老师的名字写到办公室列表中
3、验证数据
打印办公室详细信息,每个办公室分配到的老师的名字
'''
import random
# 准备数据
teacher = ['t1', 't2', 't3', 't4', 't5', 't6', 't7', 't8']
offices = [[], [],
[]]
# 分配老师到办公室
for n in teacher:
# 将老师的名字随机追加到办公室列表,一共三个办公室,下标0-2
r = random.randint(0, 2)
offices[r].append(n)
# 验证数据,打印办公室详细分配数据
i = 1
for name in offices:
print(f'办公室{i}:{name}')
i += 1
out:
办公室1:['t4', 't8']
办公室2:['t2', 't5', 't6', 't7']
办公室3:['t1', 't3']