1.元组的概念
元组:轻量级列表,不可变序列,形式类似于列表,区别在于元组的所有元素放在一对括号中,而不是方括号中
2.元组的创建
a=('a','b','c','d')
x=() #空元组
#使用 tuple()函数将列表,字符串,字典,集合,map对象等其他类型可迭代对象转换成元组
print(tuple('abcdefg'))
('a','b','c','d','e','f','g')
s=tuple() #空元组
3.元组的删除
只能使用del命令删除整个元组对象(不可变序列)
4.元组与列表的区别
1)列表是可变序列,元组是不可变序列
2)元组无法像列表一样 使用pop(),remove(),append(),extend(),insert()方法 (无法增删改)
3)元组的访问和处理速度比列表快
4)元组从内部实现上不允许修改元素值,从而使代码更安全
5)元组可以作为字典的键,列表不能
6)从效果上看,tuple()冻结列表(可变→不可变),alist()融化列表(不可变→可变)
5.元组的特例
#虽然元组属于不可变序列,其元素的值是不可变,但如果元祖包含可变序列,情况就略有不同
x=([1,2],3)
x[0][0]=5
>>>x
([5,2],3)
x[0].append(8) #添加
>>>x
([5,2,8],3)
a=(1,2)
b=(3,4)
>>>a+b
(1,2,3,4) #拼接
>>>a*5=(1,2,1,2,1,2,1,2,1,2) #重复五遍
a.count(2) #计数,可使用,2的个数
a.index(1) #返回1第一次出现的位置 适用
6.序列解包
1)大幅度提高代码可读性,减少程序员的代码输入值。例如,可使用序列解包功能对多个变量同时进行赋值
x,y,z=1,2,3
2)序列解包也可以用于列表和字典
对字典 默认是对键进行操作,若需要对键:值进行操作,则需要使用items()方法,若对值进行操作,则需要使用values(方法)
例:
a=[1,2,3]
b,c,d=a
s={'a':1,'b':2,'c':3}
b,c,d=s.items()
b,c,d=s
b,c,d=s.values()
a,b=b,a
3)使用序列解包可以方便地同时遍历多个序列
keys=['a','b','c']
values=[1,2,3]
for k,v in zip(keys,values):
print(k,v)
>>>a 1
b 2
c 3