Python __元组

Posted huangmeisheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python __元组相关的知识,希望对你有一定的参考价值。

元祖定义           

    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

  注:以上内容均由菜鸟教程整理提供。

 








以上是关于Python __元组的主要内容,如果未能解决你的问题,请参考以下文章

python_元组_元组与列表转换

Python学习笔记之列表和元组

Python__15--元组

python3列表方法,元组方法

为啥列表有 __reverse__() 特殊方法但元组在 Python 中没有?

Python删除元组