Замена элемента кортежа в Python

#python

#python

Вопрос:

У меня есть список:

 a = [
    ((5,7),15,(5,3)),
    ((2,1),8,(4,3)),
    ((4,7),9,(4,2))
]
  

и кортеж:

 b = ((5,7),9,(4,2))
  

и я хочу завершить действие в кавычках:

 for i in range(len(a)):
    if a[i][0] == b[0]:
        if a[i][1] > b[1]:
            "replace a[i][1] with b[1]"
  

но это назначение не поддерживается

Комментарии:

1. tuple s являются неизменяемыми, вы не можете их изменять.

2. Кортежи в python неизменяемы, это означает, что вы не можете изменить их значение после определения, если вам нужен изменяемый кортеж, используйте список.

3. Хорошо, спасибо, я понял это.

Ответ №1:

a[i][1] и b[1] есть Tuples . учтите, что вы не можете делать такие вещи с элементами кортежа. потому что элемент кортежа не может быть изменен. вы можете изменить все свои коллекции на список и запустить свой код:

 a = [[[5, 7],15,[5, 3]], [[2, 1], 8, [4, 3]], [[4, 7], 9, [4, 2]]]

b = [[5,7],9,[4,2]]  

for i in range(len(a)):
    if a[i][0] == b[0]:
        if a[i][1] > b[1]:
            a[i][1] = b[1]
            print(a)