Python 更改嵌套列表中元组的值

Python 更改嵌套列表中元组的值,python,python-3.x,list,tuples,Python,Python 3.x,List,Tuples,如何强制更改第一个列表中第一个元组的第二个值 test_list=[[(12, 5), (13, 6)], [(12, 2), (13, 2)]] 请帮忙!提前感谢。元组是不可变的。您需要替换它 因为列表是可变的,所以可以用具有更改的第二个值的新元组替换第一个列表的第一个元素 test_list = [[(12, 5), (13, 6)], [(12, 2), (13, 2)]] # test_list - unchanged # test_list[0] - modified # te

如何强制更改第一个列表中第一个元组的第二个值

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

请帮忙!提前感谢。

元组是不可变的。您需要替换它

因为列表是可变的,所以可以用具有更改的第二个值的新元组替换第一个列表的第一个元素

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')
请注意,如果使用命名元组,可以使用
\u replace()
方法()稍微简化此过程:


元组是不可变的。不能更改元组的值。 要更新值,需要创建一个具有更新值的新元组,然后可以替换数组中的值。

您能告诉我最后一行的输出是什么吗?我不明白你为什么给我
foo='bar'
。谢谢我是说。在您的示例中,您没有使用
namedtuple
,但如果您这样做,它会简化。
test_list[0][0] = test_list[0][0]._replace(foo='bar')