day06 课程(列表 & 列表常用操作 & 元组 & 元祖常用操作)

课程:https://www.bilibili.com/video/BV1o4411M71o?spm_id_from=333.788.videopod.episodes&p=110

6.1 列表简介

6.1.1 目标

  列表的应用场景

  列表的格式

  列表的常用操作

  列表的循环遍历

  列表的嵌套使用

6.1.2 列表的应用场景

思考:有一个人的姓名(TOM)怎么书写存储程序?

答:变量

思考:如果一个班级100位学生,每个人的姓名都要存储,应该如何书写程序?声明 100 个变量吗?

答:列表既可,列表一次性可以存储多个数据

6.1.3 列表的格式

[数据1, 数据2, 数据3, ..... ]

 列表可以一次性存储多个数据,且可以为不同数据类型,尽量相同类型便于后期控制

6.2 下标

6.2.1 列表的常用操作

列表的作用是一次性存储多个数据,程序员可以对这些数据进行的操作有:增、删、改、查

6.2.2 下标

name_list = ["TOM","Lily","ROSE"]
print(name_list)

print(name_list[0])  # TOM
print(name_list[1])  # Lily
print(name_list[2])  # ROSE

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\02.下标.py 
['TOM', 'Lily', 'ROSE']
TOM
Lily
ROSE

Process finished with exit code 0

6.3 查找函数

6.3.1 index

index():返回指定数据所在位置的下标

(1)语法

列表序列.index(数据, 开始位置下标, 结束位置下标)  # 位置下标可以不写,即默认查找全部

(2)快速体验

name_list = ["TOM","Lily","ROSE","Lily"]

print(name_list.index('Lily'))  # 存在则返回存在的第一个位置下标
print(name_list.index('Lily',2,4))  # 按照下标区间查找,有则返回存在位置下标
print(name_list.index('Lilys'))  # 不存在报错

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\03.查找函数.py 
1
3
Traceback (most recent call last):
  File "D:\Pycharm\code\day06\03.查找函数.py", line 8, in <module>
    print(name_list.index('Lilys'))  # 不存在报错
          ~~~~~~~~~~~~~~~^^^^^^^^^
ValueError: 'Lilys' is not in list

Process finished with exit code 1

注意:如果查找的数据不存在则报错

6.3.2 count

count():统计指定数据在当前列表中出现的次数,没有显示 0 次,不会报错

name_list = ["TOM","Lily","ROSE","Lily"]

print(name_list.count("TOM"))  # 出现 1 次
print(name_list.count("Lily"))  # 出现 2 次
print(name_list.count("Lilys"))  # 出现 0 次

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\03.查找函数.py 
1
2
0

Process finished with exit code 0

6.3.3 len

len():访问列表长度,即列表中数据的个数

name_list = ["TOM","Lily","ROSE","Lily"]

print(len(name_list))  # 4 个, 列表中数据总个数

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\03.查找函数.py 
4

Process finished with exit code 0

6.4 判断是否存在

6.4.1 in

in:判断指定数据某个列表序列,如果在返回 True,不在返回 False

name_list = ["TOM","Lily","ROSE","Lily"]

print('Lily' in name_list)  # 存在 返回 True
print('Lilys' in name_list)  # 不存在 返回 False

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\04.判断是否存在.py 
True
False

Process finished with exit code 0

6.4.2 not in

not in:判断指定数据不在某个列表序列,如果不在返回 True,在返回 False

name_list = ["TOM","Lily","ROSE","Lily"]

print('Lily' not in name_list)  # 存在 返回 False
print('Lilys' not in name_list)  # 不存在 返回 True

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\04.判断是否存在.py 
False
True

Process finished with exit code 0

6.5 体验案例 判断是否存在

需求:查找用户输入的名字是否已经存在

name_list = ["TOM","Lily","ROSE"]

name = input("请输入你要查询的姓名:")
if name in name_list:
   print("输入的姓名是 %s ,此用户名已经存在" % name)
else:
    print("输入的姓名是 %s ,可以注册" % name)

------------------------------------------------ 第一次执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe "D:\Pycharm\code\day06\05.体验案例 判断是否存在.py" 
请输入你要查询的姓名:aaa   # 当输入 aaa 时
输入的姓名是 aaa ,可以注册

Process finished with exit code 0
------------------------------------------------ 第二次执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe "D:\Pycharm\code\day06\05.体验案例 判断是否存在.py" 
请输入你要查询的姓名:Lily   # 当输入 Lily 时
输入的姓名是 Lily ,此用户名已经存在

Process finished with exit code 0

6.6 列表增加数据之append

作用:增加指定数据到列表中

6.6.1 语法

append():列表结尾追加数据

列表序列.append(数据)

6.6.2 快速体验

name_list = ["TOM","Lily","ROSE"]

print(name_list)  # 原列表数据
name_list.append("xiaonan")  # 追加数据
print(name_list)  # 追加后列表数据
name_list.append("[11 , 22]")  # 追加列表到列表数据
print(name_list)  # 追加的列表数据被整个写入

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\06.列表增加数据之append.py 
['TOM', 'Lily', 'ROSE']
['TOM', 'Lily', 'ROSE', 'xiaonan']
['TOM', 'Lily', 'ROSE', 'xiaonan', '[11 , 22]']

Process finished with exit code 0

注意:列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据

6.6.3 注意

如果 append() 追加的数据是一个序列,则追加整个序列到列表

name_list = ["TOM","Lily","ROSE"]

print(name_list)  # 原列表数据
name_list.append("[11 , 22]")  # 追加列表数据是一个序列
print(name_list)  # 追加的列表数据整个写入 即追加整个序列到列表
------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\06.列表增加数据之append.py 
['TOM', 'Lily', 'ROSE']
['TOM', 'Lily', 'ROSE', 'xiaonan', '[11 , 22]']

Process finished with exit code 0

6.7 列表增加数据之extend

extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表

6.7.1 语法

列表序列.extend(数据)

6.7.2 快速体验

name_list = ["TOM","Lily","ROSE"]

print(name_list)  # 原列表数据
name_list.extend("xiaonan")  # 追加数据,拆分每个追加
print(name_list)  # 追加后列表数据

------------------------------------------------ 执行后 
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\07.列表增加数据之extend.py 
['TOM', 'Lily', 'ROSE']
['TOM', 'Lily', 'ROSE', 'x', 'i', 'a', 'o', 'n', 'a', 'n']

Process finished with exit code 0

6.7.3 注意

name_list = ["TOM","Lily","ROSE"]

print(name_list)  # 原列表数据
name_list.extend([11 , 22])  # 追加列表到列表数据
print(name_list)  # 追加的列表数据被拆分,逐一追加写入

------------------------------------------------ 执行后 
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\07.列表增加数据之extend.py 
['TOM', 'Lily', 'ROSE']
['TOM', 'Lily', 'ROSE', 11, 22]

Process finished with exit code 0

6.8 列表增加数据之insert

insert():指定位置新增数据

6.8.1 语法

列表序列.insert(位置下标,数据)

6.8.2 快速体验

name_list = ["TOM","Lily","ROSE"]

print(name_list)  # 原列表数据
name_list.insert(1,'xiaonan')  # 插入固定位置到列表
print(name_list)  # 插入的数据在固定位置

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\08.列表增加数据之insert.py 
['TOM', 'Lily', 'ROSE']
['TOM', 'xiaonan', 'Lily', 'ROSE']

Process finished with exit code 0

6.9 列表删除数据

6.9.1 del

(1)语法

del 目标

(2)快速体验2种方法

name_list = ["TOM","Lily","ROSE"]

print(name_list)
del name_list  # 删除列表
print(name_list)  # 打印报错,不存在列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\09.列表删除数据.py 
Traceback (most recent call last):
['TOM', 'Lily', 'ROSE']
  File "D:\Pycharm\code\day06\09.列表删除数据.py", line 7, in <module>
    print(name_list)  # 打印报错,不存在列表
          ^^^^^^^^^
NameError: name 'name_list' is not defined

Process finished with exit code 1
name_list = ["TOM","Lily","ROSE"]

print(name_list)
del(name_list)  # 删除列表
print(name_list)  # 打印报错,不存在列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\09.列表删除数据.py 
['TOM', 'Lily', 'ROSE']
Traceback (most recent call last):
  File "D:\Pycharm\code\day06\09.列表删除数据.py", line 9, in <module>
    print(name_list)  # 打印报错,不存在列表
          ^^^^^^^^^
NameError: name 'name_list' is not defined

Process finished with exit code 1

(3)角标删除

注意:del 可以删除指定下标的数据

name_list = ["TOM","Lily","ROSE"]

print(name_list)
del name_list[1]  # 删除指定下标的数据
print(name_list)  # 打印删除后列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\09.列表删除数据.py 
['TOM', 'Lily', 'ROSE']
['TOM', 'ROSE']

Process finished with exit code 0

6.9.2 pop

pop():删除指定下标的数据,如果不指定下标,默认删除最后一个数据,无论是按照下标还是删除最后一个,pop 函数

(1)语法

列表序列.pop()

(2)快速体验默认

name_list = ["TOM","Lily","ROSE"]

print(name_list)  # 打印原列表
del_name = name_list.pop()  # 因为可以返回删除的数据,所以可以用变量接收
print(name_list)  # 打印删除后列表,不写角标,默认删除最后一个数据
print(del_name)  # 删除的变量可以会返回

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\09.列表删除数据.py 
['TOM', 'Lily', 'ROSE']
['TOM', 'Lily']
ROSE

Process finished with exit code 0

(3)快速体验带角标

name_list = ["TOM","Lily","ROSE"]

print(name_list)  # 打印原列表
del_name = name_list.pop(1)  # 用变量接收
print(name_list)  # 打印删除后列表,写角标,角标数据被删除
print(del_name)  # 删除的变量可以会返回

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\09.列表删除数据.py 
['TOM', 'Lily', 'ROSE']
['TOM', 'ROSE']
Lily

Process finished with exit code 0

6.9.3 remove

remove():移除列表中某个数据的第一匹配项

(1)语法

列表序列.remove('数据')

(2)快速体验

name_list = ["TOM","Lily","ROSE","TOM"]

print(name_list)  # 打印原列表
name_list.remove('TOM')  # 删除第一个匹配到的数据
print(name_list)  # 打印删除后的列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\09.列表删除数据.py 
['TOM', 'Lily', 'ROSE', 'TOM']
['Lily', 'ROSE', 'TOM']

Process finished with exit code 0

6.9.4 clear

 clear():清空列表

(1)语法

列表序列.clear()

(2)快速体验

name_list = ["TOM","Lily","ROSE","TOM"]

print(name_list)  # 打印原列表
name_list.clear()  # 清空列表
print(name_list)  # 打印清空后列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\09.列表删除数据.py 
['TOM', 'Lily', 'ROSE', 'TOM']
[]

Process finished with exit code 0

6.10 列表修改数据

6.10.1 修改

修改指定下标数据

name_list = ["TOM","Lily","ROSE","TOM"]

print(name_list)  # 打印原列表
name_list[0] = "aaa"  # 对角标重新赋值
print(name_list)  # 打印列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\10.列表修改数据.py 
['TOM', 'Lily', 'ROSE', 'TOM']
['aaa', 'Lily', 'ROSE', 'TOM']

Process finished with exit code 0

6.10.2 逆置排序

name_list = [1, 2, 3, 4, 5, 6]
print(name_list)  # 打印原列表
name_list.reverse()  # 逆序排序
print(name_list)  # 打印列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\10.列表修改数据.py 
[1, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 1]

Process finished with exit code 0

6.10.3 排序

(1)语法

列表序列.sort( key = none, reverse = False)

注意:reverse 表示排序规则,reverse = True 降序,reverse = False 升序 (默认)

(2)升序

name_list = [1, 4, 6, 3, 5, 2]
print(name_list)  # 打印原列表
name_list.sort()  # 默认升序排序
print(name_list)  # 打印列表
name_list.sort(reverse= False )  #  False,升序排序,也是默认的排序
print(name_list)  # 打印列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\10.列表修改数据.py 
[1, 4, 6, 3, 5, 2]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]

Process finished with exit code 0

(3)降序

name_list = [1, 4, 6, 3, 5, 2]
print(name_list)  # 打印原列表
name_list.sort(reverse= True )  #  True,降序排序
print(name_list)  # 打印列表

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\10.列表修改数据.py 
[1, 4, 6, 3, 5, 2]
[6, 5, 4, 3, 2, 1]

Process finished with exit code 0

6.11 列表复制数据

 函数:copy()

name_list = ["TOM","Lily","ROSE","TOM"]

print(name_list)  # 打印原列表
list2 = name_list.copy()  # 复制列表,用新的列表接收
print(name_list)  # 原列表还在
print(list2)  # 新列表一样

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\11.列表复制数据.py 
['TOM', 'Lily', 'ROSE', 'TOM']
['TOM', 'Lily', 'ROSE', 'TOM']
['TOM', 'Lily', 'ROSE', 'TOM']

Process finished with exit code 0

6.12 列表的遍历之while

需求:依此打印列表中的各个数据

name_list = ["TOM","Lily","ROSE"]

print(f'列表中的数量为: {len(name_list)}')
i = 0
while i < len(name_list):  # len 返回列表中的个数
    print(name_list[i])  # 取 name_lsit[0]/name_lsit[1]/name_lsit[2] 中的数据
    i += 1

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\12.列表的遍历之while.py 
列表中的数量为: 3
TOM
Lily
ROSE

Process finished with exit code 0

6.13 列表的遍历之for

name_list = ["TOM","Lily","ROSE"]

print(f'列表中的数量为: {len(name_list)}')
for i in name_list:  # 列表中数据
    print(i)  # 直接打印数据

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\13.列表的遍历之for.py 
列表中的数量为: 3
TOM
Lily
ROSE

Process finished with exit code 0

6.14 列表嵌套

列表嵌套指的就是一个列表里面包含了其他的子列表

应用场景:要存储班级一、二、三 3个班级学生姓名,且每个班级的学生姓名在一个列表中

name_list = [["小明","小红","小绿"],["Tom","Lily","Rose"],["张三","李四","王五"]]

思考:如何查找到数据“小绿”?

name_list = [["小明","小红","小绿"],["Tom","Lily","Rose"],["张三","李四","王五"]]

print(name_list)
print(f'取某个子列表: {name_list[0]}')
print(f'嵌套列表取某个子列表中数据: {name_list[0][2]}')

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\14.列表嵌套.py 
[['小明', '小红', '小绿'], ['Tom', 'Lily', 'Rose'], ['张三', '李四', '王五']]
取某个子列表: ['小明', '小红', '小绿']
嵌套列表取某个子列表中数据: 小绿

Process finished with exit code 0

6.15 随机分配办公室的步骤分析

需求:有三个办公室,8位老师,8位老师随机分配到3个办公室

"""
步骤拆解:
1.准备数据
    1.1 8位老师 -- 列表
    1.2 3个办公室 -- 列表嵌套
2.分配老师到办公室
    *** 随机分配
    把老师的名字写入到办公室列表 -- 办公室列表追加老师名字
3.验证是否分配成功
    打印每个办公室人数和对应老师的名字
"""

6.16 随机分配办公室的实现代码

import random

# 1.准备数据
teachers = ["a","b","c","d","e","f","g","h"]
offices = [[], [], []]

# 2.分配老师到办公室  遍历老师列表中的数据
for name in teachers:  # 8个老师遍历
    # 列表追加数据 append(名字不能拆分,选中) extend insert
    num = random.randint(0,2)  # 让办公室成为随机 0 , 1 ,2 三个教室
    # print(num)  # 测试是否随机
    offices[num].append(name)

# 为了更贴合生活,把各个办公室子列表加一个办公室编号 1 ,2 ,3
i = 1
# 3.验证是否分配成功
for office in offices:  # office 是 offices列表中的子列表
    print(f"办公室 {i} 的总人数: {len(office)} , 教师分别是:")
    # print("办公室 %s 的总人数 %s,教师是 %s" % (i, len(office) ,office))  # print 格式化输出的另一种方式
    for name in office:  # 遍历分配后办公室的老师
        print(name, end="\t")  # 输出老师名字,同时让同一办公室老师在一行
    print("")  # 打印完一个办公室换行
    i += 1

------------------------------------------------ 执行一次,每次执行办公室人数都是随机的
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\15.随机分配办公室的实现代码.py 
办公室 1 的总人数: 3 , 教师分别是:
b    e    h    
办公室 2 的总人数: 4 , 教师分别是:
c    d    f    g    
办公室 3 的总人数: 1 , 教师分别是:
a    

Process finished with exit code 0

6.17 列表总结

列表的格式

[数据1, 数据2, 数据3, ..... ]

常用操作方法

  index()

  len()

  append()

  pop()

  remove()

列表嵌套

name_list = [["小明","小红","小绿"],["Tom","Lily","Rose"],["张三","李四","王五"]]
name_list[0][2]

6.18 体验元组

6.18.1 目标

  元组的应用场景

  定义元组

  元组常见操作

6.18.2 元组的应用场景

思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?

答:列表?列表是可以一次性存储多个数据,但是列表中的数据允许更改

num_list = [10 , 20 , 30]  # 原列表
num_list[0] = 100  # 更改
print(num_list)  # 发生更改后
------------------------------------------------ 执行后
[100, 20, 30]

一个元组可以存储多个数据,元组内的数据是不能修改的

t1 = (10, 20, 30)

print(t1)
print(type(t1))

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\16.体验元组.py 
(10, 20, 30)
<class 'tuple'>

Process finished with exit code 0

6.19 定义元组

元组特点:定义元组使用小括号,且 逗号 隔开各个数据,数据可以是不同的数据类型 

# 多个数据元组
t1 = (10, 20, 30)
print(type(t1))

# 单个数据元组
t2 = (10,)
print(type(t2))  # 元组类型

t3 = (10)
print(type(t3))  # 没有逗号,为 int 数据类型

t4 = ('xiaoming',)
print(type(t4))  # 元组类型

t5 = ('xiaoming')
print(type(t5))  # 没有逗号,为 str 数据类型

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\17.定义元组.py 
<class 'tuple'>
<class 'tuple'>
<class 'int'>
<class 'tuple'>
<class 'str'>

Process finished with exit code 0

注意:如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型

6.20 元组常见操作之查找

元组数据不支持修改,只支持查找,具体如下:

6.20.1 下标查找

按下标查找数据

t1 = ("aa", "bb", "cc", "dd")

print(t1[2])  # 按照下标查找数据

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\18.元组常见操作之查找.py 
cc

Process finished with exit code 0

6.20.2 index

index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的 index方法相同

t1 = ("aa", "bb", "cc", "dd")

print(t1.index("bb",0,4))  # 查找数据的下标,带有下标的位置从 0 到4
print(t1.index("bbb",0,4))  # 查找的数据不在,则报错

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\18.元组常见操作之查找.py 
1
Traceback (most recent call last):
  File "D:\Pycharm\code\day06\18.元组常见操作之查找.py", line 7, in <module>
    print(t1.index("bbb",0,4))  # 查找的数据不在报错
          ~~~~~~~~^^^^^^^^^^^
ValueError: tuple.index(x): x not in tuple

Process finished with exit code 1

6.20.3 count

count():统计某个数据在当前元组出现的次数

t1 = ("aa", "bb", "cc", "dd")

print(t1.count("aa"))  # 查找数据在元组中出现的次数
print(t1.count("aaa"))  # 没有显示出现 0 次

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\18.元组常见操作之查找.py 
1
0

Process finished with exit code 0

6.20.4 len

len():统计元组中数据的个数

t1 = ("aa", "bb", "cc", "dd")

print(len(t1))  # 统计元组中的个数

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\18.元组常见操作之查找.py 
4

Process finished with exit code 0

6.21 元组数据的修改操作

注意:元组内的直接数据如果修改会立即报错

t1 = ("aa", "bb", "cc", "dd")

t1[0] = "aaa"

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\19.元组数据的修改操作.py 
Traceback (most recent call last):
  File "D:\Pycharm\code\day06\19.元组数据的修改操作.py", line 5, in <module>
    t1[0] = "aaa"
    ~~^^^
TypeError: 'tuple' object does not support item assignment

Process finished with exit code 1

但是如果元祖里面有列表,修改列表里面的数据是支持的

t2 = ("aa", "bb", ["cc" , "dd"], "dd")

print(t2)  # 打印原元组
t2[2][0] = "cccccc"  # 修改元组中的列表数据
print(t2)  # 打印新元祖(没办法直接修改元组,可以修改元组中列表的数据)

------------------------------------------------ 执行后
C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day06\19.元组数据的修改操作.py 
('aa', 'bb', ['cc', 'dd'], 'dd')
('aa', 'bb', ['cccccc', 'dd'], 'dd')

Process finished with exit code 0

6.22 元组的总结

定义元组

# 多个数据元组
t1 = (10, 20, 30)
# 单个数据元组
t2 = (10,)

常用操作方法

  index()

  len()

———————————————————————————————————————————————————————————————————————————

                                                                                                                         无敌小马爱学习

 

posted on 2025-09-16 10:50  马俊南  阅读(16)  评论(0)    收藏  举报