CodeGym /课程 /Python SELF ZH /“修改”元组

“修改”元组

Python SELF ZH
第 8 级 , 课程 4
可用

13.1 添加元素

元组是不可变对象。创建元组之后,它就无法更改。但很多时候,即便无法更改对象,我们也可能需要它的一个修改后的副本。

这正是str类所做的事情——它有二十多个方法,这些方法不会更改原始str对象,但会返回一个新的字符串,反映调用方法的变化。

Python的开发者本可以给tuple类添加一些方法,当尝试更改元组时返回一个新的对象。但他们并没有这样做。可能是为了不让我们感到困惑,或者其他原因。

所以改动元组的过程通常是这样的:


                list_ = list(tuple_)
                修改 list_ 在这
                tuple2 = tuple(list_)
                        
添加新元素——方法append():

例如,你想向元组中添加一个元素,可以这样做:


my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4)  # 添加元素到列表中 
my_new_tuple = tuple(my_list)

添加一组元素——方法extend():

方法extend()允许一次向列表中添加多个元素。这个方法接受一个可迭代对象作为参数(例如其他列表、元组、集合):


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6))  # 添加元素到列表中
my_new_tuple = tuple(my_list)
        

插入到中间——方法insert()

方法insert()将元素添加到列表的指定位置。这个方法接受两个参数:元素要放置的索引和元素本身:


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0)  # 在列表的开头添加0
my_new_tuple = tuple(my_list)
    

13.2 修改元素

如果你需要更改元组中的某个元素,还是按这个流程来:


list_ = list(tuple_)
# 修改 list_ 在这
tuple2 = tuple(list_)

我们将元组的第一个元素赋值为最后一个值,最后一个元素赋值为第一个值。需要这样的代码:


my_tuple = (1, 2, 3, 4)

my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0]  # 交换值 
my_new_tuple = tuple(my_list)
print(my_new_tuple)  # (4, 2, 3, 1)
                

13.3 删除元素

删除元组中的元素也是同样的步骤。

举个例子,想要从元组中删除某个特定的值


 atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.remove("apple")
atuple = tuple(alist)

print(atuple)  # ('banana', 'cherry') 
        

注意,最后我们将新的tuple对象赋值给之前存储原始tuple引用的变量。这样做没有问题,但原始tuple不会因此更改。如果代码中还有其他地方引用它,它们仍然会指向原始tuple

现在我们来删除元组的最后一个元素。

代码如下所示:


atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.pop() # 删除最后一个元素
atuple = tuple(alist)
            
print(atuple)  # ('apple', 'banana')

        

我想你明白了这个逻辑。不能直接从元组中删除元素,但如果非常想做,也是可以的 😊

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION