1、元组创建
1 tup1 = ('physics', 'chemistry', 1997, 2000) 2 tup2 = (1, 2, 3, 4, 5 ) 3 tup3 = "a", "b", "c", "d" 4 tup4 =() #创建空元祖 5 tup5=(50,)#元组中只包含一个元素时,需要在元素后面添加逗号 6 tup6=50, 7 list1=[34,123,1] 8 tup7=tuple(list1)
2、元祖访问
1 tup1 = ('physics', 'chemistry', 1997, 2000) 2 print(tup1[0]) #使用下标索引来访问元组中的值
3、元组操作
tup1 = (12, 34.56) tup2 = ('abc', 'xyz') tup3 = tup1 + tup2 #对元组进行连接组合 del tup1 #删除元组 tup4=('Hi!',) * 4 #元组复制 cnt=len((1, 2, 3)) #计算元素个数 isin=3 in (1, 2, 3) #元素是否存在 for x in (1, 2, 3): #元组迭代 print x a=max(tup1) #最大元素 b=min(tup1) #最小元素
4、元组解包
1 tup=(1,2,3) 2 a,b,c=tup
5、值交换
1 a='wer' 2 b='dfgh' 3 a,b=b,a
6、元组与列表
①元组不可修改,列表可修改
②元组占用空间小
③可以将元祖用作字典的键
④命名元组可以作为对象的替代
⑤函数参数是以元组形式传递的
7、命名元组
命名元组是元组的子类,既可以通过.name访问值,也可以通过位置下标访问。
from collections import namedtuple Duck=namedtuple('Duck','bill tail') duck=Duck('wide orange','long') >>>duck Duck(bill='wide orange',tail='long') >>>duck.bill wide orange >>>duck.tail long
也可以使用字典来构造:
parts={'bill':'wide orange','tail':'long'} duck2=Duck(**parts) >>>duck Duck(bill='wide orange',tail='long')
其中**parts是个关键词变量,作用是将parts字典中的键值抽取出来作为参数提供给Duck()使用。等价于:
duck2=Duck(bill='wide orange',tail='long')
命名元组不可变,但可以替换其中某些域的值并返回一个新的命名元组:
duck3=duck2._replace(tail='magnificent',bill='asdasd')
命名元组无法通过,name添加新的域。
命名元组的好处:
- 和不可变对象相似
- 与使用对象相比,使用命名元组在时间和空间上效率更高
- 可以使用.对属性进行访问,而不需要使用字典风格的方括号
- 可以作为字典的键