我有一个我用于此代码的数据电子表格。它有很多员工及其基本工资和职位。我试图找到收入最高的人并打印出这些信息。它没有给我那个,而是给了我列表中的最后一个人。它也只给我最后一个薪水。而不是打印'209318'它只打印'8'
def main():
my_file = open('IndianaSalaries.csv', 'r')
list_of_lines = my_file.read().splitlines()
for i in range(1, len(list_of_lines)):
one_line = list_of_lines[i]
line_items = one_line.split(',')
base_pay = line_items[2]
highest = max(base_pay)
first_name = line_items[1]
last_name = line_items[0]
university = line_items[3]
position = line_items[4]
print("The highest paid person is", first_name, last_name, "with the position of",position,"at",university,"making a base salary of $",highest)
main()
以下是示例数据:姓氏,名字,基本工资,大学或办公室,职位,,, Aaron,Julia J,97783,Clarion,Chair ,,, Aaron,Paul Neal,23961,Shippensburg,Custodial Worker 1 ,,, Aaron,William F,11199,Clarion,讲师,,, Abbondanza,Lawrence A. Jr,111099,Edinboro,讲师,PT Temp ,, Abbott,Ann,107870,West Chester,主席,,, Abbott,Barbara E.,31687,Edinboro,财政助理,,, Abbott,Kristen Kyle,44795,Clarion,讲师,,, Abbott,Mary V,35071,Edinboro,财政助理,,,
答案 0 :(得分:0)
您基本上只是在遍历数据。您实际上并没有找到具有最高salay的行。
有很多方法可以解决这个问题。您可以做的是有两个变量,一个用于存储最高工资(称之为max_pay
),另一个用于存储哪个员工(或行)具有该最高工资(row_max
) 。
你能做的是:
将max_pay初始化为一个非常低的数字,比如0,
在循环中,检查max_pay
是否低于行的基本工资。如果是,那么您找到了一个薪水较高的行(或员工),并将该行号存储在row_max
中。如果没有,则转到下一次迭代。
循环后,只需打印出行号({1}}