В Python кортежи неизменяемы, что означает, что их значения не могут быть изменены после того, как они определены. Однако есть несколько обходных путей, которые можно использовать для достижения эффекта изменения значения в кортеже:
-
Преобразуйте кортеж в список, измените список, а затем преобразуйте его обратно в кортеж:
my_tuple = (1, 2, 3) my_list = list(my_tuple) my_list[1] = 5 my_tuple = tuple(my_list)
-
Создайте новый кортеж с измененным значением путем разрезания и объединения:
my_tuple = (1, 2, 3) modified_tuple = my_tuple[:1] + (5,) + my_tuple[2:]
-
Используйте функцию
collections.namedtuple
из модуляcollections
, чтобы создать новый кортеж с измененным значением:from collections import namedtuple MyTuple = namedtuple('MyTuple', ['val1', 'val2', 'val3']) my_tuple = MyTuple(1, 2, 3) my_tuple = my_tuple._replace(val2=5)
Помните, что во всех этих методах создается новый кортеж с измененным значением, поскольку кортежи неизменяемы.