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

使用核心Python、NumPy及Pandas开发DBMS时遭遇索引越界错误及输入逻辑问题求助

解决你的员工DBMS开发问题及列表索引越界错误

嘿,别担心,作为初学者遇到这些问题太正常了,我来帮你一步步理清问题并修正代码!

首先,咱们先拆解你代码里导致list out of range错误和功能失效的几个核心问题:

问题1:列表初始化的范围逻辑错误

你写的headers = [[] for i in range(1, header_count)]存在明显问题:

  • range(1, header_count)生成的是从1到header_count-1的整数序列,比如你输入员工数量是3,这个循环只会生成2个空列表(索引0和1),但后续循环里你用i从1到header_count-1,当header_count=3时i=2,这时候访问headers[2]就会超出列表的索引范围(列表只有2个元素,最大索引是1)。
  • 正确的初始化应该是生成header_count个空列表,用range(header_count)就可以实现。

问题2:输入逻辑未匹配需求

你只在循环外输入了一次员工信息,然后循环把这同一个信息重复添加到所有子列表里,这样所有员工的数据都会完全一致,完全没实现“为每个员工单独输入信息”的核心需求。

修正后的完整代码

下面是调整后的代码,我加入了详细注释帮你理解每一步:

import numpy as np
import pandas as pd

# 获取员工数量
employee_count = int(input("Number of employees: "))

# 初始化空列表,用来存储所有员工的数据
employees_data = []

# 循环遍历每个员工,单独收集他们的信息
for idx in range(employee_count):
    print(f"\n--- 输入第 {idx+1} 位员工信息 ---")
    name = input("员工姓名: ")
    age = int(input("员工年龄: "))
    position = input("员工职位: ")
    salary = int(input("员工薪资: "))
    
    # 将当前员工的4项属性打包成列表,添加到总数据列表中
    employees_data.append([name, age, position, salary])

# 将员工数据转换为DataFrame,并指定列名
employee_df = pd.DataFrame(employees_data, columns=["Name", "Age", "Position", "Salary"])

# 打印最终的员工数据库
print("\n===== 员工数据库 =====")
print(employee_df)

额外优化建议(更适合初学者维护)

如果你想让代码更易读、后续修改更方便,也可以用字典来存储每个员工的信息,这样属性和值的对应关系更清晰:

import numpy as np
import pandas as pd

employee_count = int(input("Number of employees: "))
employees_data = []

for idx in range(employee_count):
    print(f"\n--- 输入第 {idx+1} 位员工信息 ---")
    # 用字典存储单个员工的所有属性
    employee_info = {
        "Name": input("员工姓名: "),
        "Age": int(input("员工年龄: ")),
        "Position": input("员工职位: "),
        "Salary": int(input("员工薪资: "))
    }
    employees_data.append(employee_info)

# 直接将字典列表转换为DataFrame,列名会自动对应字典的key
employee_df = pd.DataFrame(employees_data)
print("\n===== 员工数据库 =====")
print(employee_df)

这样就完美实现了你的需求:收集每位员工的4个属性数据,将所有数据转换为DataFrame,同时彻底解决了索引越界的问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 20:57:27