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)在元组中,即使其中的某个对象是可变对象,也不能修改它所指向的引用,否则会抛出 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)在元组中,如果元素是可变对象,虽不能修改这个对象的引用,但是可以对这个对象其中的数据进行操作。
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)如果元组中的元素本身是不可变对象,那么它就不能在引用其他对象了。
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
2、删除元组
无法删除元组中的元素。只能使用 del 关键字完全删除元组对象。
t = ('hello','python',80,'world')
del t
print(t) # NameError: name 't' is not defined. Did you mean: 't1'?
3、合并元组
使用+运算符来合并两个元组。得到的是一个新的元组对象。
t1 = (10,30,'hello')
t2 = (99,'python')
t3 = t1 + t2
print(t3) # (10, 30, 'hello', 99, 'python')
也可以使用 * 操作符来复制元组,合并多个重复元组。
t1 = (10,30,'hello')
t3 = t1 * 2
print(t3) # (10, 30, 'hello', 10, 30, 'hello')
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)
© 版权声明
本站网络名称:
尤尤博客
本站永久网址:
https://www.yxfseo.cn
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,请在24H内删除。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容