1、元组(tuple):戴上了枷锁的列表
由于和列表是近亲关系,所以元组和列表在实际使用上是非常相似的。
元组是不能随意插入和删除元素的。
● 创建和访问一个元组
>>> tuple1=(1,2,3,4,5,6,7,8)
>>> tuple1
(1, 2, 3, 4, 5, 6, 7, 8)
>>> type(tuple1)
<class 'tuple'>
>>> tuple1[1]
2
>>> tuple1[5:]
(6, 7, 8)
>>> tuple1[:5]
(1, 2, 3, 4, 5)
>>> tuple1[1]=3
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
tuple1[1]=3
TypeError: 'tuple' object does not support item assignment
>>>
元组的标识是逗号(,)
,而不是小括号。
>>> temp = (1)
>>> temp
1
>>> type(temp)
<class 'int'>
>>> temp2=2,3,4
>>> type(temp2)
<class 'tuple'>
>>>
创建空元组。
>>> temp = ()
>>> type(temp)
<class 'tuple'>
>>>
如果创建的元组中只有一个元素,要在元素后边加上逗号,确保它是元组。如果没有加逗号就只是普通元素。
>>> temp=(1,)
>>> type(temp)
<class 'tuple'>
>>>
>>> temp = 1,
>>> type(temp)
<class 'tuple'>
>>>
在8*(8,)中的*是重复操作符。得到一个8个8的元组。
>>> 8*(8)
64
>>> 8*(8,)
(8, 8, 8, 8, 8, 8, 8, 8)
>>>
● 更新和删除一个元组
插入一个元素时小括号和逗号缺一不可,
>>> temp = ('cisco','lenovo','microsoft','google')
>>> temp = temp[:2]+('ibm',)+temp[2:]
>>> temp
('cisco', 'lenovo', 'ibm', 'microsoft', 'google')
>>>
插入一个
元素的过程是将temp分成两部分,在中间加上新的元素,形成新的元组,再将temp标签贴上。原来的元组是还在的,但是没有标签指向它,Python的回收器会回收它,释放内存。
同样可以用分片的方法删除一个元素。
>>> temp = temp[:2]+temp[3:]
>>> temp
('cisco', 'lenovo', 'microsoft', 'google')
>>>
删除整个元组可以使用del语句。
>>> del temp
>>> temp
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
temp
NameError: name 'temp' is not defined
>>>
在日常很少使用del删除整个元组,因为Python有回收机制。
● 元组相关的操作符
拼接操作符
>>> temp = ('cisco','microsoft','ibm','nike')
>>> temp = temp[:2]+('ikea',)+temp[2:]
>>> temp
('cisco', 'microsoft', 'ikea', 'ibm', 'nike')
>>>
重复操作符
>>> 3*temp
('cisco', 'microsoft', 'ikea', 'ibm', 'nike', 'cisco', 'microsoft', 'ikea', 'ibm', 'nike', 'cisco', 'microsoft', 'ikea', 'ibm', 'nike')
>>>
关系操作符
>>> temp1=('vinda','intel')
>>> temp>temp1
False
>>> temp1>temp
True
>>>
逻辑操作符
>>> temp2=temp1[:]
>>> (temp1==temp2) and (temp1>temp)
True
>>>
成员操作符
>>> 'cisco' in temp
True
>>>