Ah_ben 2022-10-18 15:12 采纳率: 100%
浏览 24
已结题

有关元组方面出现的问题

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

在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

  • 写回答

3条回答 默认 最新

  • 於黾 2022-10-18 15:53
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月26日
  • 已采纳回答 10月18日
  • 修改了问题 10月18日
  • 修改了问题 10月18日
  • 展开全部

悬赏问题

  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件
  • ¥15 使用ESP8266连接阿里云出现问题