Python学习笔记(七)列表
一、列表
1、列表的应用场景
2、列表的格式
列表可以一次性存储多个数据,*且可以为不同数据类型。*但一般为了后期方便控制,一般存储相同数据类型。
[数据1,数据2,数据3,...]
3、列表的常用操作函数
3.1 查找
3.1.1 下标
name_list=['Tom','Lisa','Rose']
print(name_list[0]) #Tom
print(name_list[1]) #Lisa
print(name_list[2]) #Rose
3.1.2 函数
例子 :
name_list = ['Tom','Lisa','Rose']
# 1. 下标查找
print(name_list[0]) #Tom
print(name_list[1]) #Lisa
print(name_list[2]) #Rose
#函数查找
# 2. index()
print(name_list.index('Lisa'))
print(name_list.index('Rose'))
# 3. count()
print(name_list.count('Tom'))
print(name_list.count('Jack'))
# 4. len()
print('列表中数据个数:',len(name_list))
结果截图:
3.1.3 判断是否存在
案例1:
name_list = ['Tom','Lisa','Rose']
# 1.in
print('Tom'in name_list) #True
print('Linda'in name_list) #False
# 2.not in
print('Tom' not in name_list) #False
print('Linda'not in name_list) #True
案例2:
# 需求:用户注册邮箱输入账号名,如果这个账号名存在,提示用户;否则,成功注册
account = input('请您输入账号:')
if account in name_list:
print('此账号已经注册,请重新输入账号')
else:
print('成功注册此账号')
3.2 增加数据
增加指定数据到列表中。
3.2.1 append():列表结尾添加数据。如果数据是一个序列,则将这个序列直接添加到列表结尾。
语法:
列表序列.append(数据)
3.2.2 extend():列表结尾添加数据。如果数据是一个序列,则将这个序列的数据拆开一一添加到列表结尾。
语法:
列表序列.extend(数据)
3.2.3 inser():指定位置新增数据。
语法:
列表序列.insert(位置下标,数据)
实例:
#列表之添加函数
# 1. append()
name_list1 = ['Tom','Lisa','Rose']
print(name_list1.append('Jack')) #append()函数没有返回值
print(name_list1) #将Jack追加到序列结尾,说明序列是可变数据类型
name_list1.append([11,22]) #append()追加的数据如果是一个序列,那么它是将整个序列追加到原列表结尾
print(name_list1)
# 2.extend()
name_list2 = ['Tom','Lisa','Rose']
name_list2.extend('Jack')
print(name_list2) #extend()追加的数据如果是一个序列,那么它是将序列拆开逐一追加到原列表结尾
name_list2.extend([11,23,72])
print(name_list2)
# 3.insert()
name_list3 = ['Tom','Lisa','Rose']
name_list3.insert(2,'Jack') #在下标位置数据前添加
print(name_list3)
结果截图:
3.3 删除
name_list1 = ['Tom','Lisa','Rose']
del name_list1 #del(name_list1)
print(name_list1)
del还可以删除指定下标的数据
# del还可以删除指定下标的数据
del name_list1[0]
print(name_list1)
name_list1 = ['Tom','Lisa','Rose']
#pop() -- 删除指定下标的数据,如果不指定下标,默认删除最后一个数据。
# 无论是按照下标还是最后一个,pop函数都会返回这个被删除的数据
print(name_list1.pop(2)) #返回被删除元素
print(name_list1) #删除后原列表保留的数据
name_list1 = ['Tom','Lisa','Rose']
# remove(数据)
name_list1.remove('Rose')
print(name_list1)
name_list1 = ['Tom','Lisa','Rose']
# clear() -- 清空
name_list1.clear()
print(name_list1)
3.4 修改
name_list1 = ['Tom','Lisa','Rose']
# 1.修改指定下标的数据
name_list1[0] == 'Jack'
print(name_list1)
# 2,逆序 reverse()
list1 = [6,3,5,24,2]
list1.reverse()
print(list1) #[2,24,5,3,6]
# 3.sort() 排序:升序 和 降序
list2 = [87,72,99,100]
list2.sort() #默认升序
print(list2)
list2.sort(reverse= False) #升序
print(list2)
list2.sort(reverse = True) #降序
print(list2)
3.5 复制
函数:copy()
# copy() -- 复制数据
name_list = ['Tom','Lisa','Rose']
name_list2 = name_list.copy()
print(name_list2) #['Tom','Lisa','Rose']
4、列表的循环遍历
需求:依次打印列表中的各个数据。
4.1 while
name_list = ['Tom','Lisa','Rose']
# 1.while
i = 0
while i < len(name_list):
print(name_list[i],end=' ')
i += 1
4.2 for
name_list = ['Tom','Lisa','Rose']
# 2.for
for j in name_list:
print(j,end=' ')
注意:比较同一需求情况下,for循环的代码量远小于while,一般数据遍历优先考虑for循环。
5.列表嵌套
例子:
name_list = [['Tom','Lily','Rose'],['小明','李四'],['xiaoming','xiaohang']]
print(name_list)
print(name_list[0]) #['Tom','Lily','Rose']
# 列表嵌套时的数据查询
print(name_list[1][1]) #李四
结果截图:
6.综合运用 – 随机分配办公室
需求:有三个办公室,8位老师随机分配到3个办公室。
代码:
#需求:有三个办公室,8位老师随机分配到3个办公室
'''
步骤:
1.准备数据
1.1 8 位老师 -- 列表
1.2 3 个办公室 -- 列表嵌套
2.分配老师到办公室
***随机分配:即将老师名字分配到办公室
3.验证是否分配成功
打印办公室的详细信息,每个办公室的人数和老师的名字
'''
import random
# 1.准备数据
Teacher = ['A','B','C','D','E','F','G','H']
Office = [[],[],[]]
# 2.分配老师到办公室 -- 取到每个老师追加到某个办公室 -- 遍历老师数据
for name in Teacher:
# 列表追加数据 -- append(选择它) extend insert
# xx[0] -- 要随机下标
num = random.randint(0,2)
Office[num].append(name)
print(Office)
# 3. 验证是否打印成功
i = 1
for office in Office:
print(f'办公室{i}人数为{len(office)},老师的名字分别为:')
for name in office:
print(name)
i += 1
结果截图(1):
结果截图(2):