首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用切片/对象重新分配更改一维元组

使用切片/对象重新分配更改一维元组
EN

Stack Overflow用户
提问于 2017-09-07 16:54:01
回答 2查看 23关注 0票数 0

我知道元组是不可变的对象,但是我知道元组支持索引和切片。因此,如果将元组分配给变量,则可以将变量重新分配到新的元组对象,并在所需的索引位置更改值。

当我试图使用索引片来完成这个任务时,我将得到一个包含多个元组的元组。我理解为什么会发生这种情况,因为我传递的是原元组的逗号分隔的部分,但我不知道如何(如果可能的话)返回一个一维元组,在处理更大的数据集时更改一个元素。

示例:

代码语言:javascript
复制
someNumbers = tuple(i for i in range(0, 20))
print(someNumbers)
someNumbers = someNumbers[:10], 2000, someNumbers[11:]
print(someNumbers)

产出如下:

代码语言:javascript
复制
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
((0, 1, 2, 3, 4, 5, 6, 7, 8, 9), 2000, (11, 12, 13, 14, 15, 16, 17, 18, 19))

我能否返回一个一维元组并只更改所需的索引值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-07 16:59:52

使用串连

代码语言:javascript
复制
someNumbers = someNumbers[:10] + (2000,) + someNumbers[11:]
票数 1
EN

Stack Overflow用户

发布于 2017-09-07 17:03:05

您可以使用元组连接:

代码语言:javascript
复制
someNumbers = tuple(i for i in range(0, 20))
print(someNumbers)
# (2000, ) to differentiate it from (2000) which is a number
someNumbers = someNumbers[:10]+ (2000,) + someNumbers[11:]
print(someNumbers)

产出:

代码语言:javascript
复制
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2000, 11, 12, 13, 14, 15, 16, 17, 18, 19)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46101604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档