一个python关于员工表的问题

怎么制作一个员工信息薪水表呢,员工信息存放在列表list中。利用什么语句简便

效果如图

img

代码如下 :

def calculate_salary(employee):
    employee_id, name, work_age, base_salary = employee
    salary = base_salary + work_age * 1000
    return salary

def sort_employees(employees):
    sorted_employees = sorted(employees, key=lambda x: (-calculate_salary(x), -x[0]))
    return sorted_employees

def print_employee_info(employees):
    for employee in employees:
        employee_id, name, work_age, base_salary = employee
        salary = calculate_salary(employee)
        print(f"{employee_id} {name} {work_age} {base_salary} {salary}")

# 员工列表
employees = [
    (1001, '张三', 3, 3000),
    (1002, '李四', 2, 2500),
    (1003, '王五', 2, 8000),
    (1004, '赵六', 1, 2000),
    (1006, '孙七', 5, 5000),
    (1008, '刘八', 3, 1500)
]

# 计算薪水并排序
sorted_employees = sort_employees(employees)

# 输出员工信息和薪水
print_employee_info(sorted_employees)


可以使用Python中的pandas库来制作员工信息薪水表。

import pandas as pd

employee_list = [
    {'name': '张三', 'age': 25, 'gender': '男', 'salary': 5000},
    {'name': '李四', 'age': 30, 'gender': '女', 'salary': 6000},
    {'name': '王五', 'age': 35, 'gender': '男', 'salary': 7000},
    {'name': '赵六', 'age': 40, 'gender': '女', 'salary': 8000},
]

df = pd.DataFrame(employee_list)
df = df[['name', 'age', 'gender', 'salary']]
print(df)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7649206
  • 这篇博客你也可以参考下:python面对对面编程对三国演义,水浒传,红楼梦人物关系与出场频率进行文本分析,数据可视化
  • 除此之外, 这篇博客: python 数据库连接池中的 3、使用多线程时没有返回所有的数据【太水不知道为什么】 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:

    首先,我们需要明确员工信息薪水表的具体格式和内容。

    假设我们需要展示每位员工的姓名、职位、基础工资、津贴和总收入,那么每位员工的信息需要在列表中以一定顺序存储,例如:

    employee_list = [ ["Alice", "Manager", 10000, 5000], ["Bob", "Engineer", 8000, 2000], ["Charlie", "Technician", 6000, 1000] ]

    其中,基础工资和津贴分别为整数类型,单位为人民币元;总收入为基础工资和津贴相加之和,是自动计算的。

    接下来,我们可以编写代码来展示员工信息薪水表:

    def show_employee_info(employee_list):
        print("Name\tPosition\tBasic Salary\tAllowance\tTotal")
        for employee in employee_list:
            total_income = employee[2] + employee[3]  # 计算总收入
            print("{}\t{}\t{}\t{}\t{}".format(
                employee[0], employee[1], employee[2], employee[3], total_income))
    

    以上代码中,我们定义了一个名为show_employee_info的函数,用来展示员工信息薪水表。该函数接受一个列表作为参数,列表中存储每位员工的信息。在函数内部,我们首先打印表格的表头,即表格各列的名称,接着通过循环遍历每位员工的信息,计算出他们的总收入,并将信息打印出来。

    如果我们执行如下代码:

    employee_list = [
        ["Alice", "Manager", 10000, 5000],
        ["Bob", "Engineer", 8000, 2000],
        ["Charlie", "Technician", 6000, 1000]
    ]
    
    show_employee_info(employee_list)
    

    我们将得到以下结果:

    Name    Position        Basic Salary    Allowance       Total
    Alice   Manager         10000           5000            15000
    Bob     Engineer        8000            2000            10000
    Charlie Technician      6000            1000            7000
    

    至此,我们已经成功的实现了员工信息薪水表的制作。最后,为了优化代码的语句和执行速度,我们可以考虑以下几点:

    1. 使用列表推导式或map()函数来遍历列表中的每个元素,这样可以减少代码的行数,提高代码的可读性和可维护性。

    2. 使用局部变量来保存需要反复计算的结果,例如计算总收入。

    3. 避免过度使用嵌套循环等低效的算法,尝试使用高效的算法和数据结构来提高程序的性能。

    但需要注意的是,优化代码的语句和执行速度并非一成不变的准则,应根据实际情况具体分析,避免盲目优化。

效果如下:

img

实现的代码为:

import pandas as pd

# 员工信息列表
employee_data = [
    ['John', 'Doe', 35, 'Male', 'Sales', 5000],
    ['Jane', 'Smith', 28, 'Female', 'Marketing', 6000],
    ['Michael', 'Johnson', 42, 'Male', 'Finance', 7000],
    # 添加更多员工信息...
]

# 创建DataFrame对象
df = pd.DataFrame(employee_data, columns=['First Name', 'Last Name', 'Age', 'Gender', 'Department', 'Salary'])

# 打印员工信息薪水表
print(df)

具体你要什么功能,如果简单的,列表+ for循环就可以了:

employee_data = [
    ["张三", "001", "经理", 10000],
    ["李四", "002", "助理", 5000],
    ["王五", "003", "销售员", 3000]
]

print("姓名    工号    职位    薪水")
for employee in employee_data:
    print("{}\t{}\t{}\t{}".format(employee[0], employee[1], employee[2], employee[3]))