<1> 修改、新增元素
<2> 删除元素(允许删除整个元组)
<3> 所有会对整个元组内部元素发生变化的方法都无法使用(append,remove,pop等)
<1> 创建:tuplename=(element1,element2,……elementn)。元素个数无限制,类型也可不相同
- a = (1, 2, 3, 4, 5)
- b = (1,) # 一个元素的元组,逗号不能省略
- c = (1) # 不是元组,是给c赋值1
- d = () # 空元组
- e = tuple(range(0, 20,2)) # 使用tuple()函数创建元组
-
- s1=('china','hello','world')
- s2=(23,'python',[1,2,3,4,5])
- s3='python','hello','dashabi' # 圆括号可以省略
<2> 删除元组:del tuplename(不支持单个元素的修改)
- t1=(1,2,3,4,5)
- t2=('abc','xyz')
- # t1[0]=100 # 报错
- t1=(6,7,8,9,0) # 支持整体处理
- t3=t1+t2
- print(t3)
- del t1
- del t2
- # PS:元组为不可变序列,不支持单个元素的删除,可以整体赋值覆盖
- # (6, 7, 8, 9, 0, 'abc', 'xyz')
- t1=('a','b','c',['A','B','C'])
- t1[3][0]='x'
- t1[3][1]='y'
- t1[3][2]='z'
- print(t1)
- # PS:元组只可保证一级子元素不可变,对内嵌元素不保证不可变
- # ('a', 'b', 'c', ['x', 'y', 'z'])
<3> 元组连接时必须维持元组性质(结构和内容),不能连接字符串或列表
- t1=(1,2,3)
- l1=[1,2,3]
- # t2=l1+t1 # 报错
- # t2=t1+'hello' # 报错
<4> 元组连接的对象只有一个元素时,必须加逗号
- t1=(1,2,3)
- t2=t1+(4,)
- print(t2)
- # (1, 2, 3, 4)
<5> 元组的读取:定义时使用(),若要读取访问元组内容, 依然和列表一样使用 [ ] 配合索引实现
- n1=(1,2,3,4,5)
- s1='apple','orange'
- print(n1[1],s1[1]) # 此时中括号是访问内部元素
- # 2 orange
<6> 元组切片:与列表操作方式相同
- import random as a
-
- # t1=a.sample(range(0,10),10) # 默认返回列表
- # [5, 4, 7, 8, 2, 1, 9, 3, 0, 6]
- t1 = tuple(a.sample(range(0, 10), 10))
- print(t1) # (6, 7, 8, 2, 0, 3, 1, 5, 4, 9)
- print(t1[1:3]) # (7, 8)
- print(t1[:4]) # (6, 7, 8, 2)
- print(t1[5:]) # (3, 1, 5, 4, 9)
- print(t1[-2:]) # (4, 9)
- print(t1[-3:3:-1]) # (5, 1, 3, 0)
- print(t1[0:5:3]) # (6, 2)
<7> 元组与列表的数据互换
- t1 = (123, 'hello', '999', 34, 5)
- l1 = list(t1)
- l1.append('china')
- print(l1)
- t1 = tuple(l1)
- print(t1)
- # [123, 'hello', '999', 34, 5, 'china']
- # (123, 'hello', '999', 34, 5, 'china')
<1> 元组与列表都属于序列,都可以按照特定顺序来存储一组数据,类型个数不受限制
<2> 区别: