Коротко можно так:
with open('salary.txt') as file:
lines = file.read().splitlines()
with open('workers.txt') as file:
lines2 = file.read().splitlines()
max_salary = max([x.split(',')[1] for x in lines])
inn = [x.split(',')[0] for x in lines if x.split(',')[1] == max_salary][0]
max_salary_user = [x.split(',')[0] for x in lines2 if x.split(',')[1][4:] == inn][0]
print(max_salary_user)
Насколько я понял, вас ставит в ступор конструкции вида:
max_salary = max([x.split(',')[1] for x in lines])
Но в них нет ничего страшного. Данная конструкция является эквивалентом следующей:
my_list = [] # Создаем пустой список
for x in lines: # перебираем каждую строку
my_list.append(x.split(',')[1]) # Каждую строку делим по запятым, берем второй элемент и добавляем в список.
print(my_list) # В списке будет ['99424', '91300', '91870', '63400', '80500', '68070', '76320', '97600', '98060', '78030']
print(max(my_list)) # С помощью функции max берем сомое большое число из списка.
Попробуйте потренироваться на следующем простом примере: Есть список чисел - от 1 до 15. Нам нужно выбрать числа, которые больше 7 и меньше 13. Можно сделать так:
i = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
for x in i:
if x > 7 and x < 13:
print(x)
А можно сделать короче:
i = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
num = [x for x in i if x > 7 and x < 13]
print(num)