目录
Python元组类型tuple
Python元组类型tuple的理解
Python 的元组tuple与列表list类似,不同之处在于元组的元素不能修改。
元组使用小括号(),列表使用方括号[],元素间隔也是逗号","。元组必须有逗号","存在,即使只有一个元素,因为如果没有逗号就会被认为是普通括号表达式运算。
元组tuple数据访问也是下标,仍然用方括号[]。
mytuple=(15,) # 这是元组格式
print(type(mytuple)) # <class 'tuple'>
print(mytuple) # (15,)
print(mytuple[0]) # 15
mytuple=(15) # 这不是元组格式,这是普通括号表达式,并不是所有带小括号()的都是元组
print(type(mytuple)) # <class 'int'>
print(mytuple) # 15
# print(mytuple[0]) # 报错 TypeError: 'int' object is not subscriptable
元组tuple可以像list一样存储。
tup1=(1,2,3)
tup2=(1.1,2.4,3.6)
tup3=("a","abc","mm")
tup4=(1,2,3,"a","abc","mm",1.1,2.4,3.6)
tup5=(1,2,3,(1.1,2.4,3.6,("a","abc","mm")))
print(tup1)
print(type(tup1))
print(tup2)
print(tup3)
print(tup4)
print(tup5)
运行结果如下。
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/py001/t09.py
(1, 2, 3)
<class 'tuple'>
(1.1, 2.4, 3.6)
('a', 'abc', 'mm')
(1, 2, 3, 'a', 'abc', 'mm', 1.1, 2.4, 3.6)
(1, 2, 3, (1.1, 2.4, 3.6, ('a', 'abc', 'mm')))
Process finished with exit code 0
元组tuple看似是个多余的数据类型,因为很多功能都可以用列表list去实现,现实中tuple使用量确实比list少。
但是元组不允许添加和修改,这能保证数据安全,因此也有一定应用场景。
元组与函数(后面会讲到)的结合,能实现返回结果为多个、传入参数为动态(参数个数可变)、数据安全。
很多库函数提供的函数参数为元组形式,返回结果也为元组。
元组tuple的创建与删查
元组的创建。使用小括号()和逗号",",并且逗号","不可缺少(即使只有一个元素也不可缺少)。
元组的添加。不可以添加。只能通过其他方法构造出想要的元组,比如通过list转换成tuple,或者tuple相加。
元组的删除。可以用del语句,但是只能整体删除不能删除单个元素。
元组的访问(查)。与list一样使用方括号[]索引法。
mylist=[]
mylist.append(10)
mylist.append(15)
mylist.append(20)
mytuple=tuple(mylist) # tuple()函数能把list对象转换成元组tuple对象
print(mytuple) # (10, 15, 20)
print(mytuple[2]) # 20 这是访问第3个元组元素
#mytuple[2]=30 # 报错,元组元素不允许修改 TypeError: 'tuple' object does not support item assignment
del mytuple
#print(mytuple) # 报错 NameError: name 'mytuple' is not defined
tup1=(1,2,3)
tup2=(4,5,6,7,8)
tup3=tup1+tup2 # 元组相加
print(tup1) # (1, 2, 3)
print(tup2) # (4, 5, 6, 7, 8)
print(tup3) # (1, 2, 3, 4, 5, 6, 7, 8)
mytuple=(1,)*10 # 元组复制生成
print(mytuple) # (1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
mytuple=(1)*10 # 这不是个元组
print(mytuple) # 10
元组tuple的函数
len(tuple):返回元组元素个数
tuple(iterable):将可迭代系列转换为元组
max(list):返回元组元素最大值
min(list):返回元组元素最小值