py learning - day 2(列表特点、元组)
2026/8/5 10:07:30 网站建设 项目流程

列表与元组

一、列表

列表的特点

列表有以下特点:

  1. 可重复性:列表的元素是可以重复的;
  2. 有序性:列表会严格记录每个元素“放进去的先后位置”,并且你可以通过下标(索引)精准地找到任意位置的元素;
  3. 可修改性:可以对列表内元素进行修改,如增加一个新元素,删改某个元素等;
  4. 异构性(多样性):一个列表里可以放不同类型的数据,如:[1, "a", True]
  5. 动态性(自动扩容):长度不固定,随增删操作自动变化,类似于 C++ 的vector容器。

二、元组

介绍

元组是不可变的序列,和列表类似,但创建以后无法对其进行修改(只读)。

特点

可以储存不同类型的元素,元素可以重复、有序,但不可以修改(支持索引访问、切片)。

定义

#定义一:元组名称=(元素1,元素2,...)t1=(1,2,3,'a','b')#定义二:定义空元组t2=()#定义三:使用内置函数 tuple() (从其他类型转换)#可以把列表、字符串、集合等其他可迭代对象转换成元组# 从列表转元组t4=tuple([1,2,3])print(t4)# 输出: (1, 2, 3)print(type(t4))# 输出: <class 'tuple'># 从字符串转元组(每个字符变成一个元素)t5=tuple("abc")print(t5)# 输出: ('a', 'b', 'c')#定义四:省略括号的“隐式元组”(Python 特有)#只要用逗号分隔多个值,即使没有括号,Python 也会自动把它们打包成元组。这常用于函数返回多个值# 隐式定义(逗号打包)t6=1,2,3print(t6)# 输出: (1, 2, 3)print(type(t6))# 输出: <class 'tuple'># 实际应用:函数返回多个值defget_user():return"张三",18# 自动打包成元组返回user_info=get_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. 初始化两个变量a=10# 变量 a 赋值为整数 10b=20# 变量 b 赋值为整数 20# 2. 核心交换操作(利用元组组包与解包)# 执行顺序(逻辑上):# Step 1(组包):右侧的 b, a 被隐式打包成一个临时元组 -> (20, 10)# Step 2(解包):左侧的 a, b 接收这个元组,按顺序赋值 -> a=20, b=10a,b=b,a# 3. 打印交换结果# 此时 a 为 20,b 为 10,完美交换print(f'a:{a}, b:{b}')# 输出: a:20, b:10

易错点

在定义单元素元组时,需要在单个元素后加上逗号,否则 Python 会将其解释为普通括号表达式:

t1=(666,)print(type(t1))# 输出:<class 'tuple'>t2=(666)print(type(t2))# 输出:<class 'int'>,原因在于运算符的优先级,(666) 被当作数学运算的括号处理

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询