2023-10-02 03:09:19
元组与列表的核心区别在于可变性:元组不可变,列表可变。元组适用于存储不应修改的数据(如配置信息、坐标点),可作为字典键;列表适合动态数据(如用户列表)。
元组与列表的详细对比元组:创建后不可修改(元素不可增删改),但若元素本身是可变对象(如列表),其内容可被修改。
列表:可动态增删改元素,灵活性高。
元组因不可变性,在创建和访问大量元素时通常比列表更高效。
元组:存储常量、配置信息、坐标点;作为字典键;函数返回多个值。
列表:存储动态数据(如用户列表、购物车商品);需要频繁修改的场景。
元组:仅提供count(value)(统计值出现次数)和index(value)(返回值索引)。
列表:提供丰富方法(如append()、remove()、sort()等)。
创建元组
使用圆括号:my_tuple = (1, 2, 'hello')
逗号分隔(可省略括号):another_tuple = 1, 2, 'world'
创建空元组:empty_tuple = ()
访问元素
通过索引访问(从0开始):print(my_tuple[0]) # 输出 1
若元组包含可变对象(如列表),可修改其内容:mutable_tuple = ([1, 2], 'abc')mutable_tuple[0].append(3)print(mutable_tuple) # 输出 ([1, 2, 3], 'abc')
常用方法
count(value):统计值出现次数。my_tuple = (1, 2, 2, 3, 2)print(my_tuple.count(2)) # 输出 3
index(value):返回值首次出现的索引(值不存在时抛出ValueError)。print(my_tuple.index(3)) # 输出 3
元组解包
将元组元素赋值给多个变量(变量数量需与元素数量一致):my_tuple = (1, 'hello', 3.14)a, b, c = my_tupleprint(a, b, c) # 输出 1 hello 3.14
使用*收集剩余元素:first, *rest = (1, 2, 3, 4)print(first) # 输出 1print(rest) # 输出 [2, 3, 4]
循环中结合zip处理多序列:list1 = [1, 2, 3]list2 = ['a', 'b', 'c']for i, j in zip(list1, list2): print(i, j) # 输出 1 a → 2 b → 3 c
元组与列表转换
列表转元组:tuple(my_list)(浅拷贝,内部可变对象仍共享引用)。my_list = [1, 2, 3]my_tuple = tuple(my_list) # 输出 (1, 2, 3)
元组转列表:list(my_tuple)。another_tuple = (4, 5, 6)another_list = list(another_tuple) # 输出 [4, 5, 6]
掌握元组与列表的区别及使用场景,能显著提升代码的效率和可读性。