python笔记---列表

本文详细介绍了Python中列表的应用场景、格式及各种操作,包括查找、增加、删除、修改和复制。还探讨了列表的循环遍历、嵌套以及在实际问题中的应用,如随机分配办公室的示例。

一、列表的应用场景:

一次性存储多个数据,且可以为不同的数据类型

二、列表的格式:

[数据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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值