Python 元组的修改、删除、合并操作

1、修改元组值

元组是不可变序列,一旦创建后,就无法更改元组值。

但我们可以将元组转换为列表,修改列表,然后再将列表转换为元组。

t = ('hello','python',80,'world')
print('元组修改前:',t,type(t))

# 将元组转换为列表
lst = list(t)
# 将第2个元素修改为999
lst[1] = 999

# 将列表转换为元组
t = tuple(lst)
print('元组修改前:',t,type(t))
图片[1]-Python 元组的修改、删除、合并操作-尤尤'blog

元组中存储的是对象的引用。如果元组中的对象本身是不可变对象,则不能再引用其他对象。如果元组中的对象是可变对象,则可变对象的引用不允许改变,数据是可以改变的(不能更改元素的地址,但是可以对那个可变对象进行操作)。

比喻说,元组中有个元素是列表类型,列表是可变序列,可以进行增删改操作。

1)在元组中,即使其中的某个对象是可变对象,也不能修改它所指向的引用,否则会抛出 TypeError 异常。

t = (10,[33,66],'world')

print(id(t),type(t),t)

print(id(t[1]),type(t[1]),t[1])

# t[1]元组中的第二个元素是列表list类型,是可变对象。

# t[1]是可变对象,但在元组中,它的引用是不能改变的,只能改变他的数据
t[1] = 999  # TypeError: 'tuple' object does not support item assignment
图片[2]-Python 元组的修改、删除、合并操作-尤尤'blog

2)在元组中,如果元素是可变对象,虽不能修改这个对象的引用,但是可以对这个对象其中的数据进行操作。

t = (10,[33,66],'world')

print(id(t),type(t),t)

print(id(t[1]),type(t[1]),t[1])

# t[1]元组中的第二个元素是列表list类型,是可变对象。

# t[1]是可变对象,但在元组中,它的引用是不能改变的,只能改变他的数据
# 在列表末尾追加一个元素
t[1].append(999)    # 列表中添加元素不会产生新的对象

print(id(t),type(t),t)

print(id(t[1]),type(t[1]),t[1])
图片[3]-Python 元组的修改、删除、合并操作-尤尤'blog

3)如果元组中的元素本身是不可变对象,那么它就不能在引用其他对象了。

t = (10,[33,66],'world')

print(id(t),type(t),t)

print(id(t[0]),type(t[0]),t[0])

# t[0]是不可变对象,他不能在引用其他对象
t[0] = 111  # TypeError: 'tuple' object does not support item assignment
图片[4]-Python 元组的修改、删除、合并操作-尤尤'blog

2、删除元组

无法删除元组中的元素。只能使用 del 关键字完全删除元组对象。

t = ('hello','python',80,'world')
del t
print(t)    # NameError: name 't' is not defined. Did you mean: 't1'?
图片[5]-Python 元组的修改、删除、合并操作-尤尤'blog

3、合并元组

使用+运算符来合并两个元组。得到的是一个新的元组对象。

t1 = (10,30,'hello')

t2 = (99,'python')

t3 = t1 + t2

print(t3)   # (10, 30, 'hello', 99, 'python')
图片[6]-Python 元组的修改、删除、合并操作-尤尤'blog

也可以使用 * 操作符来复制元组,合并多个重复元组。

t1 = (10,30,'hello')

t3 = t1 * 2

print(t3)   # (10, 30, 'hello', 10, 30, 'hello')
图片[7]-Python 元组的修改、删除、合并操作-尤尤'blog

4、获取元组的长度

使用len()方法

t = ('hello','python',80,'world')
print(len(t))   # 4

补充:元组的count和index方法

count():返回元组中指定元素出现的次数。

index():返回指定元素所在的索引位置。

t = ('hello','python',80,'world','hello')

c = t.count('hello')
print('hello出现的次数:',c)

i = t.index('hello')
print('hello所在的位置:',i)
图片[8]-Python 元组的修改、删除、合并操作-尤尤'blog
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容