gpt4 book ai didi

python - 如何比较字典中的值?

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:39 25 4
gpt4 key购买 nike

我有一本字典,大致如下所示:

{'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': 'mark.metts@enron.com', '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': 'steven.elliott@enron.com', '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 循环来检查谁的薪水和奖金最高?任何帮助将不胜感激。谢谢。

最佳答案

您最初的错误是将错误的数据存储为最大值而不是薪水值。

您可以使用 key 函数在字典上使用 max 更有效地和“Pythonic”地计算最大值,该函数是元组薪水/奖金(所以相同的薪水:比较奖金):

print(max(d,key=lambda x : (d[x]["salary"],d[x]["bonus"])))

这给了我

METTS MARK

关于python - 如何比较字典中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42211584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com