У меня есть словарь, который выглядит примерно так:Как сравнить значения в словаре?
{'METTS MARK': {'salary': 365788, 'to_messages': 807, 'deferral_payments': 'NaN', 'total_payments': 1061827, 'exercised_stock_options': 'NaN', 'bonus': 600000, 'restricted_stock': 585062, 'shared_receipt_with_poi': 702, 'restricted_stock_deferred': 'NaN', 'total_stock_value': 585062, 'expenses': 94299, 'loan_advances': 'NaN', 'from_messages': 29, 'other': 1740, 'from_this_person_to_poi': 1, 'poi': False, 'director_fees': 'NaN', 'deferred_income': 'NaN', 'long_term_incentive': 'NaN', 'email_address': '[email protected]', 'from_poi_to_this_person': 38},
'BAXTER JOHN C': {'salary': 267102, 'to_messages': 'NaN', 'deferral_payments': 1295738, 'total_payments': 5634343, 'exercised_stock_options': 6680544, 'bonus': 1200000, 'restricted_stock': 3942714, 'shared_receipt_with_poi': 'NaN', 'restricted_stock_deferred': 'NaN', 'total_stock_value': 10623258, 'expenses': 11200, 'loan_advances': 'NaN', 'from_messages': 'NaN', 'other': 2660303, 'from_this_person_to_poi': 'NaN', 'poi': False, 'director_fees': 'NaN', 'deferred_income': -1386055, 'long_term_incentive': 1586055, 'email_address': 'NaN', 'from_poi_to_this_person': 'NaN'},
'ELLIOTT STEVEN': {'salary': 170941, 'to_messages': 'NaN', 'deferral_payments': 'NaN', 'total_payments': 211725, 'exercised_stock_options': 4890344, 'bonus': 350000, 'restricted_stock': 1788391, 'shared_receipt_with_poi': 'NaN', 'restricted_stock_deferred': 'NaN', 'total_stock_value': 6678735, 'expenses': 78552, 'loan_advances': 'NaN', 'from_messages': 'NaN', 'other': 12961, 'from_this_person_to_poi': 'NaN', 'poi': False, 'director_fees': 'NaN', 'deferred_income': -400729, 'long_term_incentive': 'NaN', 'email_address': '[email protected]', 'from_poi_to_this_person': 'NaN'}
}
Это лишь малая часть словаря, хотя. Как я могу использовать цикл for для циклического вычисления значений зарплаты каждого подъяручного словаря и сравнить его со следующей, чтобы узнать, кто имеет самую большую зарплату? Я пытался что-то вроде этого:
big = 0
for i in data_dict:
if data_dict[i]["salary"] > big:
big = i
print i
Это не дает мне правильного ответа. Кроме того, как я могу использовать цикл for, чтобы проверить, кто имеет самую большую зарплату и самый большой бонус? Любая помощь будет принята с благодарностью. Спасибо.
'большой = i' <= Вы хранения ключа (то есть имя) вместо значения заработной платы. 'print i' выводит последнее значение, которое' i' принимало во время итерации, т. е. последний ключ в словаре. – dhke
Приятно видеть, что вы на самом деле пытались что-то сделать. Это вопрос, который очень приветствуется у начинающих здесь. –