Python基本数据类型-tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
元组中的元素类型也可以不相同:
#作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读
#定义:与列表类型比,只不过[]换成() age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))
#创建元组 t=tuple((1,2,3)) print(t) #(1, 2, 3) t1=(1,2,3,4,5) print(t1) #(1, 2, 3, 4, 5) #当要创建的元组中只包含一个元素时,必须带逗号。如果不带逗号会将左右括号默认视为运算符\ t3=(6,) print(t3) #(6,) t4=(3) print(t4,type(t4)) #3 <class 'int'>
#优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取
#2、切片(顾头不顾尾,步长)
#3、长度
#4、成员运算in和not in
#5、循环
#访问,1、索引取值 t1=(1,2,3,4,5) #正向,反向,步长 print(t1[3]) #4 print(t1[-1]) #5 print(t1[1::2]) #(2, 4) #2、切片 print(t1[1:3]) #(2, 3) #3、长度 print(len(t1)) #5 #4、in、not in参考字符串和列表 #5、循环,用for循环 for i in t1: print(i) #6、删除,不能删除元组中的元素,只能删除整个元组 del t1 #7、修改元组,不能通过下标修改 #8、使用推导式生成并访问元组对象 t2=(j for j in range(10)) print(t2) #<generator object <genexpr> at 0x05353028>,生成一个对象 for k in t2: print(k)
实例
#!/usr/bin/python3 tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 ) tinytuple = (123, 'runoob') print (tuple) # 输出完整元组 print (tuple[0]) # 输出元组的第一个元素 print (tuple[1:3]) # 输出从第二个元素开始到第三个元素 print (tuple[2:]) # 输出从第三个元素开始的所有元素 print (tinytuple * 2) # 输出两次元组 print (tuple + tinytuple) # 连接元组
以上实例输出结果:
('abcd', 786, 2.23, 'runoob', 70.2)
abcd
(786, 2.23)
(2.23, 'runoob', 70.2)
(123, 'runoob', 123, 'runoob')
('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')
元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取(看上面,这里不再赘述)。
其实,可以把字符串看作一种特殊的元组。
实例
>>>tup = (1, 2, 3, 4, 5, 6) >>> print(tup[0]) 1 >>> print(tup[1:5]) (2, 3, 4, 5) >>> tup[0] = 11 # 修改元组元素的操作是非法的 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>>
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
string、list 和 tuple 都属于 sequence(序列)。
注意:
- 1、与字符串一样,元组的元素不能修改。
- 2、元组也可以被索引和切片,方法一样。
- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
- 4、元组也可以使用+操作符进行拼接。

浙公网安备 33010602011771号