python(元组)

元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号 ( ),列表使用方括号 [ ]。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可

创建一个元组

A = (1,2,'python','happy')             #括号内可不输入内容,即为空元组
B = 1,2,3,'nice'                       #不用加括号也可以
print(A)
print(B)
print(type(A))

A = (1) 定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1

A = (1)                            #不加逗号是整型
B = (2,)                           #加了逗号是元组
print(type(A))
print(type(B))

 

索引(和列表一样有正反索引)

A = (1,2,3,'python','happy')

for i in range(5):
    print(A[i])                      #遍历输出A[0]、A[1]、A[2]、A[3]、A[4]

A = (1,2,3,'python','happy')
print(A[-1])
print(A[-2])
print(A[-3])
print(A[-4])
print(A[-5])

访问元组

A = (1,2,3,'python','happy')
print(A[1:3])                   #实际指A[1]到A[2](不包括A[3])
print(A[:3])                    #不填写默认从A[0]开始
print(A[1:])                    #从A[1]开始截取所有元素
print(A[:])
print(A[1:-1])
print(A[-1:3])                  #倒着取输出空
print(A[-1:-3])

元组中的元素是不可进行修改和删除的(实质是元组所指向的内存中的内容不可变

A = (1,2,3,'python','happy')
A[1]=8

不支持修改元组

我们重建一个元组试试

A = (1,2,3,'python','happy')
print(id(A))
A = (1,2,3,'python')
print(id(A))

结论:从以上实例可以看出,重新赋值的元组 tup,绑定到新的对象了,不是修改了原来的对象

补充例子:

A = (1,2,['a','b'])
A[2][0]='X'
A[2][1]='y'
print(A)

这个元组A定义的时候有3个元素,分别是1,2和一个list(列表)。不是说元组一旦定义后就不可变了吗?怎么后来又变了?

我们先看看定义的时候元组A包含的3个元素:当我们把list的元素'a'和'b'修改为'X'和'Y'后,表面上看,A的元素确实变了,但其实变的不是A的元素,而是list的元素。元组A一开始指向的list并没有改成别的list,所以,元组所谓的"不变"是说,元组的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!理解了"指向不变"后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变

不能删除元组中的元素,但我们可以使用del方法删除整个元组

A = (1,2,3,'python','happy')
print(A)
del A
print(A)                       #元组删除后,输出会有异常信息

不能修改元组内的元素,但可以进行拼接元组

A = (1,2,3,'python','happy')
B = (6,5)
print(A+B)

元组运算符

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 迭代

 

元组的内置函数

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(iterable)
将可迭代系列转换为元组。
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Runoob', 'Baidu')
原文地址:https://www.cnblogs.com/wuyufeng-9-14/p/15514300.html