目录
创建格式 --- tuplename = (element1,element2,element3,...,elementn)
Python之第六章 内置容器 --- 元组
1.定义:
将一组不可变的数据序列组合起来形成一个特殊的内纸容器
2.元组不允许的条件
- 修改、新增元素
- 删除元素(允许删除整个元组)
- 所有会对元组内部元素发生变化的方法都无法使用(remove、append、pop等)
3.元组的操作
创建格式 --- tuplename = (element1,element2,element3,...,elementn)
元组元素个数无限制、类型都可以不相同
num1 = (2, 3, 4, 5, 6)
num2 = (1,) # 一个元素的元组,逗号不能省略
num3 = (1) # 不是元组,只是赋值1
num4 = () # 空列表
num5 = tuple(range(0, 20, 2)) # 产生0-19步长为2的元组,tuple()函数创建元组
str1 = ("chiana", 'hello', 'world')
str2 = (82, 'python', [1, 2, 3, 4, 5])
str3 = 'python', '你好', '风' # 元祖创建 --- 圆括号可以省略
删除元组 --- del tuplename
tuple1 = (12, 34, 56)
tuple2 = ('abz', 'xyz')
# tuple1[0] = 100 #会报错,元组不可以修改
tuple1 = (9, 8, 7, 6) # 支持整体处理
print(tuple1)
tuple3 = tuple1 + tuple2
print(tuple3)
del tuple1
del tuple2
#元组为不可变序列,不支持单个元素的删除,但支持整体赋值修改
结果:
(9, 8, 7, 6)
(9, 8, 7, 6, 'abz', 'xyz')
注意:
- 元组为不可变序列,不支持单个元素的删除,但支持整体赋值修改
- 元组只保证一级子元素不可变,对于内部嵌套的元组不保证不可变
#元组只保证一级子元素不可变,对于内部嵌套的元组不保证不可变 tup1 = ('a', 'b', ['A', 'B']) tup1[2][0] = 'x' tup1[2][1] = 'y' print(tup1) 结果: ('a', 'b', ['x', 'y'])
元组连接时必须维持元组性质,不能连接字符串或列表
tup1 = (1, 2, 3)
list1 = [4, 5, 6]
tup2 = tup1 + tup1 # 报错
tup2 = tup1 + 'china' # 报错
元组的对象只用一个元素时,必须加逗号
tup1=(1,2,3)
tup2=tup1+(4,) #加逗号
print(tup2)
元组的读取问题:
定义时使用(),若要读取访问元组内容依然和列表一样使用 [ ] 配合索引实现
num1=(1,2,3,4,5)
str1=('apple','orange')
print(num1[0],str1[1])
元组也支持切片:与列表操作方式相同
import random
tup1=tuple(random.sample(range(0,30),10))
print(tup1)
print(tup1[1:3])
print(tup1[:4])
print(tup1[5:])
print(tup1[-2:])
print(tup1[-3:3:-1])
print(tup1[0:5:3])
元组与列表的数据互换
list( ):转换为列表
list( ):转换为元组
tup1 = (123, 'hello', '999', 35.6)
list1 = list('china')
list1.append('china')
print(list1)
tup1 = tuple(list1)
print(tup1)
结果:
['c', 'h', 'i', 'n', 'a', 'china']
('c', 'h', 'i', 'n', 'a', 'china')
4.元组与列表的区别
元组与列表都属于序列,都可以按照特定的顺序存储一组数据,类型个数不受限制
区别
- 列表为可变序列,元素可以随时修改,元组为不可变序列,元素内容不可修改、删除
- 元组不支持append()、extend()、insert()等方法
- 元组和 --- 仅能通过切片来进行访问
- 元组比列表结构简单、占用资源少,程序运行速度快
- 元组比列表安全性高