Python3 元组
Posted Robin Hu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3 元组相关的知识,希望对你有一定的参考价值。
Python3中的元组(Tuple)也是一种序列类型的数据,元组跟列表都能存储任何类型的数据,但是列表中的元素是可以变的,可以增加、删除和更改列表中的元素,而一个元组一旦创建,就 无法增加、删除和更改元组内的元素。在元素不可变这一特性上,元组跟字符串很像,然而字符串中的元素类型都只能是字符型,字符串不能存储字符型以外的数据。概括起来,元组具有可以存储不同类型的数据和元组内的元素是不可变的这两大特点。 元组的创建通过圆括号()来实现。
M = ('Market', 3.0, [10, 20, 30])
在进行数据运算时,圆括号常常被用来改变运算顺序。因此,在创建只包含一个对象的元组时,为了避免歧义,Python规定在这个唯一的对象后面加一个逗号。
In [21]: tl = ('Single')
In [22]: type(tl)
Out [22]: str
In [23]: t2 = ('Single',)
In [24]: type(t2)
Out [24]: tuple
以上代码中,若没加逗号,Python会理解为字符串;加了逗号之后,Python才会解读为元组。
同时,在语意明确时,建立元组的括号可以省略:
In [25]: t3 = 'x', 'y', 'z'
In [26] : t3
Out [26]: ('x,'y', 'z')
In [27]: type(t3)
Out [27]: tuple
另外,所谓元组的不可变指的是元组所指向的内存中的内容不可变,而元组引用本身是可以变的。
tup = ('r', 'u', 'n', 'o', 'o', 'b')
# tup[0] = 'g' 不支持修改元素
id(tup)
tup = (1,2,3)
id(tup)
一、访问元组
元组可以使用下标索引来访问元组中的值,如下实例:
#!/usr/bin/python3
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])
运行结果
tup1[0]: Google
tup2[1:5]: (2, 3, 4, 5)
二、拼接元组
元组中的元素值是不允许修改的,但我们可以对元组进行拼接组合,如下实例:
#!/usr/bin/python3
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)
运行结果
(12, 34.56, 'abc', 'xyz')
三、删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
#!/usr/bin/python3
tup = ('Google', 'Runoob', 1997, 2000)
print (tup)
del tup
print ("删除后的元组 tup : ")
print (tup)
以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
删除后的元组 tup :
Traceback (most recent call last):
File "test.py", line 8, in <module>
print (tup)
NameError: name 'tup' 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, end=" ") | 1 2 3 | 迭代 |
五、元组索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组:tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')
Python 表达式 | 结果 | 描述 |
---|---|---|
tup[1] | 'Runoob' | 读取第二个元素 |
tup[-2] | 'Weibo' | 反向读取,读取倒数第二个元素 |
tup[1:] | ('Runoob', 'Taobao', 'Wiki', 'Weibo', 'Weixin') | 截取元素,从第二个开始后的所有元素。 |
tup[1:4] | ('Runoob', 'Taobao', 'Wiki') | 截取元素,从第二个开始到第四个元素(索引为 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(iterable) 将可迭代系列转换为元组。 | >>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] >>> tuple1=tuple(list1) >>> tuple1 ('Google', 'Taobao', 'Runoob', 'Baidu') |
以上是关于Python3 元组的主要内容,如果未能解决你的问题,请参考以下文章