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')
我想你明白了这个逻辑。不能直接从元组中删除元素,但如果非常想做,也是可以的 😊
GO TO FULL VERSION