You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python获取键盘输入在列表指定位置插入姓名薪资的问题排查

问题根因

你的代码存在3个明显错误,导致无法完成插入逻辑:

  • 列表内存储的单条员工数据是*元组(tuple)*类型,元组是不可变对象,不支持append()操作,执行到对应代码会直接抛出属性错误。
  • 插入逻辑完全错误:就算把元组换成可变的列表,你的写法是把新数据追加到目标位置已有的员工条目内部,不是新增一条独立的员工记录。
  • 循环遍历的索引范围是0到len(list1)-1,如果你输入的插入位置是列表末尾(索引等于列表长度),循环根本匹配不到对应索引,不会执行任何操作。
修复方案

Python列表原生提供insert(索引, 待插入内容)方法,专门用于在指定位置插入元素,不需要手动写循环遍历索引匹配位置。
修正后可正常运行的代码:

list1=[('pedro', [333]), ('juan', [9999])]

new_pos=int(input('give me the position'))
name_new=input('give me the name')
salary_new=int(input('give me the salary'))

# 按照原有数据格式组装新员工记录
new_staff = (name_new, [salary_new])
# 直接调用insert方法插入到指定位置
list1.insert(new_pos, new_staff)

print(list1)
运行示例

当输入位置为1、姓名为tom、薪资为6000时,输出结果如下:

[('pedro', [333]), ('tom', [6000]), ('juan', [9999])]

如果输入的插入位置超过列表当前最大索引,insert()方法会自动将新元素追加到列表末尾,不会触发索引越界错误。

内容的提问来源于stack exchange,提问作者nooby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 03:45:34