Изменение значения кортежа внутри вложенного списка - PullRequest
0 голосов
/ 18 июня 2020

Как изменить второе значение из первого кортежа в первом списке принудительно ??

test_list=[[(12, 5), (13, 6)], [(12, 2), (13, 2)]] 

Пожалуйста Помогите! Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Кортежи неизменяемы. Вы не можете изменить значение кортежа. Чтобы обновить значение, вам нужно создать новый кортеж с обновленным значением, а затем вы можете заменить его в массиве. Кортежи в python

0 голосов
/ 18 июня 2020

Кортежи неизменяемы. Вместо этого вам нужно будет заменить его.

Поскольку списки являются изменяемыми, вы должны заменить первый элемент первого списка новым кортежем с измененным вторым значением.

test_list = [[(12, 5), (13, 6)], [(12, 2), (13, 2)]] 

# test_list - unchanged
# test_list[0] - modified
# test_list[0][0] - replaced
# test_list[0][0][0] - preserved
# test_list[0][0]1] - new
new_second_value = 'foobar'
new_value = (test_list[0][0][0], new_second_value)
test_list[0][0] = new_value

Это будет дать вам:

>>> test_list
[[(12, 'foobar'), (13, 6)], [(12, 2), (13, 2)]]

Чтобы сделать это в одной строке:

test_list[0][0] = (test_list[0][0][0], 'foobar')

Обратите внимание, что если вы использовали именованные кортежи, вы могли бы немного упростить это с помощью метода ._replace() (https://docs.python.org/2/library/collections.html#collections .somenamedtuple._replace ):

test_list[0][0] = test_list[0][0]._replace(foo='bar')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...