Python - 更新元组



在 Python 中更新元组

在 Python 中,元组是一个不可变的序列,这意味着一旦创建了元组,就无法更改、添加或删除其元素。

要在 Python 中更新元组,您可以组合各种操作来创建新的元组。例如,您可以连接 Tuples、对 Tuples 进行切片或使用 Tuples 解包来实现所需的结果。这通常涉及将 Tuples 转换为 List,进行必要的修改,然后将其转换回 Tuples。

使用串联运算符更新元组

Python 中的串联运算符(用 + 表示)用于将两个序列(例如字符串、列表或元组)联接到一个序列中。当应用于元组时,串联运算符将连接两个(或多个)元组的元素,以创建一个包含两个元组中的所有元素的新元组。

我们可以通过创建将原始元组与其他元素组合在一起的新元组,从而使用串联运算符更新元组。

由于元组是不可变的,因此使用串联运算符更新元组不会修改原始元组,而是创建一个具有所需元素的新元组。

在下面的示例中,我们通过使用 “+” 运算符 − 将 “T1” 与 “T2” 连接起来来创建一个新元组


# Original tuple
T1 = (10, 20, 30, 40)
# Tuple to be concatenated
T2 = ('one', 'two', 'three', 'four')
# Updating the tuple using the concatenation operator
T1 = T1 + T2
print(T1)

它将产生以下输出 -

(10, 20, 30, 40, 'one', 'two', 'three', 'four')

使用切片更新元组

Python 中的切片用于通过指定索引范围来提取序列的一部分(例如列表、元组或字符串)。切片的语法如下 -


 sequence[start:stop:step]

哪里

  • start 是切片开始的索引 (含)。
  • stop 是切片结束的索引 (不包括)。
  • step 是切片中元素之间的间隔(可选)。

我们可以通过创建一个新元组来使用切片来更新元组,该元组包含原始元组的切片和新元素。

在此示例中,我们将元组分成两部分并在切片之间插入新元素来更新元组 -


# Original tuple
T1 = (37, 14, 95, 40)
# Elements to be added
new_elements = ('green', 'blue', 'red', 'pink')
# Extracting slices of the original tuple
# Elements before index 2
part1 = T1[:2] 	
# Elements from index 2 onward
part2 = T1[2:] 	
# Create a new tuple	
updated_tuple = part1 + new_elements + part2
# Printing the updated tuple
print("Original Tuple:", T1)
print("Updated Tuple:", updated_tuple)

Original Tuple: (37, 14, 95, 40)
Updated Tuple: (37, 14, 'green', 'blue', 'red', 'pink', 95, 40)

以下是上述代码的输出 -

Original Tuple: (37, 14, 95, 40)
Updated Tuple: (37, 14, 'green', 'blue', 'red', 'pink', 95, 40)

使用列表推导式更新元组

Python 中的列表推导式是创建列表的一种简洁方法。它允许您通过将表达式应用于现有可迭代对象(如列表、元组或字符串)中的每个项目来生成新列表,并可选择包括用于筛选元素的条件。

由于元组是不可变的,因此更新元组涉及将其转换为列表,使用列表推导式进行所需的更改,然后将其转换回元组。

在下面的示例中,我们首先将元组转换为列表,然后使用列表推导式将 100 添加到每个元素。然后,我们将列表转换回元组以获取更新的元组 -


# Original tuple
T1 = (10, 20, 30, 40)
# Converting the tuple to a list
list_T1 = list(T1)
# Using list comprehension	
updated_list = [item + 100 for item in list_T1]
# Converting the updated list back to a tuple
updated_tuple = tuple(updated_list)
# Printing the updated tuple
print("Original Tuple:", T1)
print("Updated Tuple:", updated_tuple)

上述代码的输出如下 -

Original Tuple: (10, 20, 30, 40)
Updated Tuple: (110, 120, 130, 140)

使用 append() 函数更新元组

append() 函数用于将单个元素添加到列表的末尾。但是,由于 Tuples 是不可变的,因此 append() 函数不能直接用于更新 Tuples。

要使用 append() 函数更新元组,我们需要先将元组转换为列表,然后使用 append() 添加元素,最后将列表转换回元组。

在下面的示例中,我们首先将原始元组 “T1” 转换为列表 “list_T1”。然后,我们使用循环迭代新元素,并使用 append() 函数将每个元素附加到列表中。最后,我们将更新后的列表转换回元组以获取更新的元组 -


# Original tuple
T1 = (10, 20, 30, 40)
# Convert tuple to list
list_T1 = list(T1)
# Elements to be added
new_elements = [50, 60, 70]
# Updating the list using append()
for element in new_elements:
	 	 list_T1.append(element)
# Converting list back to tuple
updated_tuple = tuple(list_T1)
# Printing the updated tuple
print("Original Tuple:", T1)
print("Updated Tuple:", updated_tuple)

我们得到的输出如下所示 -

Original Tuple: (10, 20, 30, 40)
Updated Tuple: (10, 20, 30, 40, 50, 60, 70)