py learning - day 2(列表特点、元组)

发布时间:2026/6/28 7:13:19

py learning - day 2(列表特点、元组) 列表与元组一、列表列表的特点列表有以下特点可重复性列表的元素是可以重复的有序性列表会严格记录每个元素“放进去的先后位置”并且你可以通过下标索引精准地找到任意位置的元素可修改性可以对列表内元素进行修改如增加一个新元素删改某个元素等异构性多样性一个列表里可以放不同类型的数据如[1, a, True]动态性自动扩容长度不固定随增删操作自动变化类似于 C 的vector容器。二、元组介绍元组是不可变的序列和列表类似但创建以后无法对其进行修改只读。特点可以储存不同类型的元素元素可以重复、有序但不可以修改支持索引访问、切片。定义#定义一元组名称(元素1,元素2,...)t1(1,2,3,a,b)#定义二定义空元组t2()#定义三使用内置函数 tuple() 从其他类型转换#可以把列表、字符串、集合等其他可迭代对象转换成元组# 从列表转元组t4tuple([1,2,3])print(t4)# 输出: (1, 2, 3)print(type(t4))# 输出: class tuple# 从字符串转元组每个字符变成一个元素t5tuple(abc)print(t5)# 输出: (a, b, c)#定义四省略括号的“隐式元组”Python 特有#只要用逗号分隔多个值即使没有括号Python 也会自动把它们打包成元组。这常用于函数返回多个值# 隐式定义逗号打包t61,2,3print(t6)# 输出: (1, 2, 3)print(type(t6))# 输出: class tuple# 实际应用函数返回多个值defget_user():return张三,18# 自动打包成元组返回user_infoget_user()print(user_info)# 输出: (张三, 18)常见方法count()统计某元素在元组里出现的次数。index()返回某个元素在元组里第一次出现的索引号若元素不存在则抛出 ValueError 异常。元组与解包、组包组包packing将多个值合并到一个容器中列表元组等解包unpacking将容器中的元素分别赋值给多个变量 标题元组组包与解包实现变量交换 注解 第 1 步组包 Packing右边的 b, a 会被打包组包成一个临时的元组Tuple。此时内存里会有一个临时对象 (20, 10)。 第 2 步解包 Unpacking左边的 a, b 会把这个临时元组解包按顺序把 20 赋给 a把 10 赋给 b。 第 3 步销毁这个临时的元组 (20, 10) 使命完成被垃圾回收。 # 1. 初始化两个变量a10# 变量 a 赋值为整数 10b20# 变量 b 赋值为整数 20# 2. 核心交换操作利用元组组包与解包# 执行顺序逻辑上# Step 1组包右侧的 b, a 被隐式打包成一个临时元组 - (20, 10)# Step 2解包左侧的 a, b 接收这个元组按顺序赋值 - a20, b10a,bb,a# 3. 打印交换结果# 此时 a 为 20b 为 10完美交换print(fa:{a}, b:{b})# 输出: a:20, b:10易错点在定义单元素元组时需要在单个元素后加上逗号否则 Python 会将其解释为普通括号表达式t1(666,)print(type(t1))# 输出class tuplet2(666)print(type(t2))# 输出class int原因在于运算符的优先级(666) 被当作数学运算的括号处理

相关新闻