Python大学任务

Python大学任务,python,task,Python,Task,任务条件: 工资表分为两个表。首先包含 商店员工的姓名,第二个是他们当月的工资。查找与所有员工平均工资偏差最小的员工的姓氏 当月的员工。找出两个最大的工人的名字 薪水。从薪资最低的工资单中删除员工信息 我写这样的代码是为了找到一个姓氏,一个工资与平均工资偏差最小的员工: N = int(input('Enter number of workers: ')) salaries_arr = [] surnames_arr = [] for i in range(N): print('Work

任务条件:

工资表分为两个表。首先包含 商店员工的姓名,第二个是他们当月的工资。查找与所有员工平均工资偏差最小的员工的姓氏 当月的员工。找出两个最大的工人的名字 薪水。从薪资最低的工资单中删除员工信息

我写这样的代码是为了找到一个姓氏,一个工资与平均工资偏差最小的员工:

N = int(input('Enter number of workers: '))
salaries_arr = []
surnames_arr = []
for i in range(N):
    print('Worker', i + 1)
    surnames = input(f'Enter surname of worker {i + 1}: ', )
    salary = int(input(f'Salary of worker {i + 1}: '))
    salaries_arr.append(salary)
    surnames_arr.append(surnames)
info_arr = list(zip(surnames_arr, salaries_arr))
average_salary = sum(salaries_arr) / N
print(info_arr)
print(average_salary)
difference_salary = []
for i in range(N):
    difference_salary.append(abs(salaries_arr[i] - average_salary))
print(difference_salary)
minima = max(difference_salary)
pos = 0
for j in range(N):
    if difference_salary[j] < minima:
        minima = difference_salary[j]
        pos = j
print("Minimal salary deviation has worker: ", surnames_arr[pos])
N=int(输入('输入工作人数:'))
工资_arr=[]
姓氏_arr=[]
对于范围(N)中的i:
打印('Worker',i+1)
姓氏=输入(f'输入工人的姓氏{i+1}:',)
salary=int(输入(f'salary of worker{i+1}:'))
工资\协议附加(工资)
姓氏附加(姓氏)
info_arr=列表(zip(姓氏_arr,薪水_arr))
平均工资=总工资/N
打印(信息)
打印(平均工资)
工资差异=[]
对于范围(N)中的i:
差异工资。附加(abs(工资工资-平均工资))
打印(工资差异)
最小值=最大值(差异与工资)
pos=0
对于范围(N)内的j:
如果工资差[j]<最低值:
最小值=工资差异[j]
pos=j
打印(“最低工资偏差有员工:”,姓_arr[pos])
但是我不明白我怎么能找到另外两个条件。我将非常感谢您的想法或解决方案。

  • 要了解工资最高的两名员工的姓名,您可以执行以下步骤-
  • 根据薪资按降序排列
    info\u arr
    数组
  • 排序数组的前两个元素将有两个工资最高的工人的名字。 在代码中是这样的
sorted\u salary=sorted(info\u arr,key=lambda x:x[1],reverse=True)
最大薪资人员1=已排序薪资[0]
最大工资2=已排序工资[1]
  • 要从薪资最低的工资单中删除员工信息,请执行以下步骤-
  • 循环遍历所有员工的薪资,并存储薪资最低的员工的索引
  • 根据
    工资_arr
    姓氏_arr
    计算的上述指数处的Pop元素
#查找工资最低的员工
最低工资工人指数=0
最低工资=最低工资[0]
对于范围(1,len(薪水))内的i:
当前工人工资=工资工资工资[i]
如果当前工人工资<最低工资:
最低工资=当前工人工资
最低工资工人指数=i
#删除薪资最低的员工的信息
工资工资(最低工资工人指数)
姓氏(最低工资工人指数)

查找两个最大的薪资。迭代列表并跟踪最高值。接下来,再次迭代列表,并跟踪低于刚刚找到的最高值的最高值。要找到最低工资,请在列表上递增并跟踪最小值。我认为您所完成的问题是三个问题中最难的。您需要在按薪资排序之前将姓氏和薪资列表合并,因为薪资索引在排序后不会引用相同的姓氏索引。@Sri感谢您指出错误。更新了对组合列表排序的代码。感谢您的解决方案!这看起来比我几小时前想的要容易得多。:)