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、元组也可以使用+操作符进行拼接。
posted @ 2019-06-03 11:07  ilspring  阅读(169)  评论(0)    收藏  举报