有关元组方面出现的问题

问题遇到的现象和发生背景

在python3.10中 创建一个字符串
通过split对字符串进行分割 并输出列表
将列表中的第三个元素强制改为列表类型
也就是列表里套了一个列表
随后对这个大列表进行类型转换,转为元组类型
对元组内可变元素(被套的小列表)进行操作时 虽然type为list 但是对其操作时报错

用代码块功能插入代码,请勿粘贴截图
s='hello|python|123' 
a=s.split(sep='|')  #对字符串分割,转化为list格式
a[2]=list(a[2])  # 将第三个元素转为list格式
aa=tuple(a) 
print(aa[2],type(aa[2]))  # ['1', '2', '3'] <class 'list'>
print(len(a[2]))  # 3
运行结果及报错内容

在aa[2]后输入.append提示框里的操作语句都是对str操作的
没有对list的有关操作

我的解答思路和尝试过的方法

由于元组内不能更改不可变元素类型,所以就在列表那一步里更改类型
更改完在小列表内的元素类型为str 但是应该不影响对整个列表的增删改

我想要达到的结果

可以对aa[2]进行增删改操作

img

你直接敲就行,能执行,不报错
因为你多次强制转换类型,而且list套list,IDE会认不出你最里层的结构到底是个什么类型,所以点的时候点不出对应的方法,这很正常
毕竟python是解释性的语言,不是所有操作在一开始编译阶段IDE都能搞清楚
执行的时候能执行的

没有问题啊

>>> s = "hello|python|123"
>>> a=s.split("|")
>>> a
['hello', 'python', '123']
>>> a[2]=list(a[2])
>>> a
['hello', 'python', ['1', '2', '3']]
>>> aa = tuple(a)
>>> aa
('hello', 'python', ['1', '2', '3'])
>>> aa[2]
['1', '2', '3']
>>> aa[2].append(4)
>>> a
['hello', 'python', ['1', '2', '3', 4]]
>>>