1. 元组介绍
元组可以称之为不可变的列表,因为它和列表有很多相似的地方。
元组是由首尾用小括号包裹的,元素与元素之间用逗号隔开
例如 tup_a = (1, 2, 3, 4, 5 )
元组在内存中的结构为
2. 类型转换
tuple()方法
支持 for 循环的数据类型都可以被转换成元组
print(tuple(11)) # 报错
print(tuple(11.11)) # 报错
print(tuple('XWenXiang'))
print(tuple([11,22,33,44]))
print(tuple({'name':'XWenXiang'}))
print(tuple({11,22,33,44}))
print(tuple(True)) # 报错
3. 元组的特性
tup_a = (11)
print(type(tup_a)) # int
tup_a= (11.11)
print(type(tup_a)) # float
tup_a= ('XWenXiang')
print(type(tup_a)) # str
当元组中只有一个元素时,若是没有逗号,会被当作运算符使用,所以我们要在
后面加上逗号。
其他数据类型也一样,只要是能村放多个数据的类型,都建议在只有一个元素的时
候加一个逗号。例如 [1,] {1,}
4. 元组取值
由于和列表相似,元组也支持用索引、切片取值。
1. 索引取值
tup_a = (1, 2, 3, 4, 5 )
print(tup_a[2])
运行结果
3
2. 切片取值 也是包头不包尾
代码示例一
tup_a = (1, 2, 3, 4, 5 )
print(tup_a[1:5])
输出结果
(2, 3, 4, 5)
代码示例二
tup_a = (1, 2, 3, 4, 5 )
print(tup_a[-5:-1])
输出结果
(1, 2, 3, 4)
代码示例三
tup_a = (1, 2, 3, 4, 5)
print(tup_a[-5:-1:2])
输出结果
(1, 3)
由于和列表切片相似,简略带下。
5. 修改元组
接下来我们来修改元组,,,,,骗你的元组不能修改。
元组是不可变
类型,所以元组是不支持修改的。只能用加号对俩个元组相加
元组相加
tup_a = (1, 2, 3, 4, 5)
tup_b = (6, 7, 8, 9)
tup_c = tup_a + tup_b
print(tup_c)
输出结果
(1, 2, 3, 4, 5, 6, 7, 8, 9)
只能改变上图的连接 1 而不能改变连接 2 。
但是,当元组中含有可变类型集合的时候,可以对里面的可变集合进行修改
代码示例
tup_a = (1, 2, 3, 4, 5, ['a', 'b'])
tup_a[-1].append('c')
print(tup_a)
输出结果
(1, 2, 3, 4, 5, ['a', 'b', 'c'])
此时它的内容地址如下图所示
当我们给元组里面的列表增加或修改元素时,并没有对连接 2 进行修改,而是对连接 3 进行修改。
6. 删除元组
由上面可知,元组元素不能修改,所以我们只能直接删除整个元组。
tup_a = (1, 2, 3, 4, 5, ['a', 'b'])
del tup_a