请问为什么把zip返回的tuple类型改为list类型之后,依旧不能修改对象的值呢

代码如下
前面的省略了,不然AI助手不让发我也不知道为什么5555

data_list = list(zip(name,confirm))

print(type(data_list))
data_list[0][0]='1'

结果和报错:
data_list[0][0]='1'
TypeError: 'tuple' object does not support item assignment
<class 'list'>

data_list可以正常输出,类型也是list,为什么不能修改呢
谢谢!!

name = ['a','b','c']
confirm = [1,2,3]
data_list = list(zip(name,confirm))
print(data_list)
print(type(data_list))
print(data_list[0])
print(type(data_list[0]))

img

data_list[0]是一个元组tuple
data_list[0][0]='1' 是对元组0下标的值修改,元组中元素是不能被修改的。

用map()把里面的元组转成列表就可以修改了


name = ['a','b','c']
confirm = [1,2,3]
data_list = list(map(list, zip(name,confirm)))
print(data_list)
print(type(data_list))
print(data_list[0])
print(type(data_list[0]))
data_list[0][0]='1'
print(data_list)



img


data_list = list(zip([1,2],[3,4]))
print(type(data_list))
print(data_list)

img

你用data_list[0][0]='1'修改,说明这是个二维数组,你最里面的还是个元组,所以无法修改