元祖定义
python的元祖跟列表类似,不同的地方是元祖一旦创建,元素就不可以修改。
元祖创建很简单,只需要在小括号里添加元素并以逗号隔开就可以了。
1 >>> Tuple = (1,2,3,4,5,) 2 3 >>> type(Tuple) 4 5 <class ‘tuple‘> 6 7 >>> new_Tuple = (,)#定义空元祖
元祖中只包含一个元素时,需要在元素后面添加一个逗号,否则会被当做运算符使用
1 >>>new_ tuple = (520) 2 >>> type(new_tuple) 3 <class ‘int‘> 4 5 >>>new_ tuple1 = (50,) 6 >>> type(new_ tuple1) 7 <class ‘tuple‘>
元祖与字符串相似,下标索引从0开始,
访问元祖
元祖可以使用下标索引来访问其中的元素,例如:
1 >>> new_tuple = (‘LiuYiFei‘,‘LiXiaoLu‘,‘FanBingbing‘,‘LiBingbing‘) 2 3 >>> print(‘new_tuple[1] —————>:‘,new_tuple[1])#访问元组 4 new_tuple下标为1的元素 5 6 new_tuple[1] —————>: LiXiaoLu 7 8 >>> print(‘new_tuple[1:] —————>:‘,new_tuple[1:])#截取元祖new_tuple元素 9 10 11 new_tuple[1:] —————>: (‘LiXiaoLu‘, ‘FanBingbing‘, ‘LiBingbing‘)
元祖只有两个属性方法,index count
1 >>> a = (1,2,3,1,3) 2 3 >>> a.index(1)#查找元素的索引位置,跟列表类似 4 0 5 6 >>> a.count(3)#统计元素的个数,跟列类似 7 2
修改元祖
元祖中的元素值是不可以修改的,但是我们可以对元祖进行拼接组合,如下列:
1 >>> new_tuple = (‘LiuYiFei‘,‘LiXiaoLu‘,‘FanBingbing‘,‘LiBingbing‘) 2 3 >>> new_tuple1 = (1,2,3,4) 4 5 >>> new_tuple2 = new_tuple + new_tuple1 #对元祖进行拼接,用一个新的元祖来接收 6 7 >>> print(new_tuple2) 8 9 (‘LiuYiFei‘, ‘LiXiaoLu‘, ‘FanBingbing‘, ‘LiBingbing‘, 1, 2, 3, 4) #答印结果
或者使用嵌套方法:
1 >>> a = (‘a‘,‘b‘,[‘A‘,‘B‘]) 2 3 >>> a[2][0] = ‘x‘ 4 >>> a[2][1] = ‘y‘ 5 6 >>> a 7 (‘a‘, ‘b‘, [‘x‘, ‘y‘])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向‘a‘,就不能改成指向‘b‘,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
删除元祖
元祖中的元素值是不可以删除的,但是我们可以使用del内置函数来删除,例如:
1 >>> new_tuple = (‘LiuYiFei‘,‘LiXiaoLu‘,‘FanBingbing‘,‘LiBingbing‘) 2 3 >>> del(new_tuple) 4 5 >>> print(new_tuple) 6#因为我们已经把new_tuple这个元祖删除了,所以在我们调用的时候就会报错,说我们 ‘NameError: name ‘new_tuple‘ is not defined’,new_tuple这个变量名没定义
7 Traceback (most recent call last): 8 File "<pyshell#10>", line 1, in <module> 9 print(new_tuple) 10 NameError: name ‘new_tuple‘ is not defined
元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
Python 表达式 | 结果 | 描述 |
---|---|---|
len((1, 2, 3)) | 3 | 计算元素个数 |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 连接 |
(‘Hi!‘,) * 4 | (‘Hi!‘, ‘Hi!‘, ‘Hi!‘, ‘Hi!‘) | 复制 |
3 in (1, 2, 3) | True | 元素是否存在 |
for x in (1, 2, 3): print x, | 1 2 3 | 迭代 |
元组内置函数
Python元组包含了以下内置函数
序号 | 方法及描述 | 实例 |
---|---|---|
1 | len(tuple) 计算元组元素个数。 |
>>> tuple1 = (‘Google‘, ‘Runoob‘, ‘Taobao‘)
>>> len(tuple1)
3
>>>
|
2 | max(tuple) 返回元组中元素最大值。 |
>>> tuple2 = (‘5‘, ‘4‘, ‘8‘)
>>> max(tuple2)
‘8‘
>>>
|
3 | min(tuple) 返回元组中元素最小值。 |
>>> tuple2 = (‘5‘, ‘4‘, ‘8‘)
>>> min(tuple2)
‘4‘
>>>
|
4 | tuple(seq) 将列表转换为元组。 |
>>> list1= [‘Google‘, ‘Taobao‘, ‘Runoob‘, ‘Baidu‘]
>>> tuple1=tuple(list1)
>>> tuple1
(‘Google‘, ‘Taobao‘, ‘Runoob‘, ‘Baidu‘)
|
2018-02-01
注:以上内容均由菜鸟教程整理提供。