任务条件:
薪金表列为两个表。第一个是商店雇员的名字,第二个是当月的工资。找到一个员工的姓,该员工的薪资与当前月份所有员工的平均薪资相差最小。找出两个工资最高的工人的名字。从薪资中删除员工信息,薪资最低。
我写这样的代码是为了找到一个雇员的姓,他的工资与平均工资相差最小:
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])但我不明白我怎么能找到另外两个条件。我将感谢你的想法或解决方案。
发布于 2020-04-16 17:47:56
要知道薪资最高的两个员工的名称,可以执行以下步骤--根据薪资按递减顺序对
info_arr数组。排序数组的前两个元素将有两个薪资最高的员工的名称。在代码中,它将类似于下面的
sorted_salary = sorted(info_arr, key=lambda x: x[1], reverse=True)
largest_salary_person1 = sorted_salary[0]
largest_salary_person2 = sorted_salary[1]若要从薪资中删除员工信息,请执行以下步骤--通过所有员工的薪资和薪资最低的员工的存储索引,执行以下步骤:surname_arr.和salaries_arr在上面计算的指标处的
# Find worker having least salary
least_salary_worker_index = 0
least_salary = salary_arr[0]
for i in range(1, len(salary_arr)):
current_worker_salary = salary_arr[i]
if current_worker_salary < least_salary:
least_salary = current_worker_salary
least_salary_worker_index = i
# Remove information of employee with least salary
salary_arr.pop(least_salary_worker_index)
surname_arr.pop(least_salary_worker_index)https://stackoverflow.com/questions/61256083
复制相似问题