元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
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 | 迭代 |
元组索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组:
L = ('Google', 'Taobao', 'Runoob')
Python 表达式 | 结果 | 描述 |
---|---|---|
L[2] | 'Runoob' | 读取第三个元素 |
L[-2] | 'Taobao' | 反向读取;读取倒数第二个元素 |
L[1:] | ('Taobao', 'Runoob') | 截取元素,从第二个开始后的所有元素。 |
元组内置函数
Python元组包含了以下内置函数
序号 | 方法及描述 | 实例 |
---|---|---|
1 | len(tuple) 计算元组元素个数。 | |
2 | max(tuple) 返回元组中元素最大值。 | |
3 | min(tuple) 返回元组中元素最小值。 | |
4 | tuple(seq) 将列表转换为元组。 | |
的内元素的类型。实现理解,tuple的元素所保存容(数值或内存地址)是不允许修改的,但地址映射的对象自身是可以修改的。
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
这个tuple定义的时候有3个元素,分别是'a','b'和一个list。不是说tuple一旦定义后就不可变了吗?怎么后来又变了?
别急,我们先看看定义的时候tuple包含的3个元素:当我们把list的元素'A'和'B'修改为'X'和'Y'后,tuple变为:表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的"不变"是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!理解了"指向不变"后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
对于元组和列表,可以这么理解,元组是一个房间的门牌号,而列表名也是一个门牌号,列表内的元素是这个房间内住的人。
一旦这个元组确定下来,房间的门牌号是不可以变的,但是里面住的人是可以变的。
以下是几个常用的函数
del :删除元素,但是不可以删除元组内的元素,但是可以删除元组内列表中的元素。也可以将整个元组,列表删除,这个时候只需要del 名称即可
type(元素):查看类型,可以是每个字符,字符串,元组名,列表名等等一切变量
len(元组名/列表名等等):求取长度
append(元素):用于列表新增元素,注意:只有列表才可以新增元素,元组不可以
>>> a=(1, [1, 2])
>>> a[1].append(3)
>>> a
(1, [1, 2, 3])
列表是用方括号括起来的
元组是用圆括号括起来的