Python 如何从字典中获得最大的价值?
我还在学蟒蛇3。请帮我解决问题:) 我有一本字典Python 如何从字典中获得最大的价值?,python,python-3.x,Python,Python 3.x,我还在学蟒蛇3。请帮我解决问题:) 我有一本字典 "527740905101197317": { "lvl": 7, "exp": 6, "gems": 333, "items": {}, "bank": 0 }, "600576767777832972"
"527740905101197317": {
"lvl": 7,
"exp": 6,
"gems": 333,
"items": {},
"bank": 0
},
"600576767777832972": {
"lvl": 6,
"exp": 14,
"gems": 100,
"items": {},
"bank": 0
},
"580843977352413185": {
"lvl": 1,
"exp": 700,
"gems": 6765,
"items": {},
"bank": 0
},
"720726494640341161": {
"lvl": 3,
"exp": 2,
"gems": 1234,
"items": {},
"bank": 0
},
"657959364933451796": {
"lvl": 1,
"exp": 480,
"gems": 42,
"items": {},
"bank": 0
},
"724932280405065830": {
"lvl": 1,
"exp": 1,
"gems": 1256,
"items": {}
},
如何使用python3获得最大的“宝石”?
我试过一些教程,但都不管用。如果您是初学者,最简单的方法就是循环使用键、值对,并跟踪最大的键。是对有关在字典项上循环的文档的引用 您有一个嵌套字典,因此您将在外部字典上循环,并检查内部字典中的条目,以找到最大的 大概是这样的:
def find_max(我的字典):
_最大值的键=无
max_gem=-1
#循环外字典
对于键,my_dict.items()中的值:
#查看内部字典项以找到“gems”键的最大值
如果值['gems']>max_gem:
最大宝石=价值['gems']
最大值的键=键
返回\u max的\u键,max\u gem
我假设您想要具有最大“gems”值的条目的键,而不仅仅是值本身
其他方法是使用“gems”值作为排序键对其进行排序,但这可能是作为新程序员最简单的方法。使用
.values()
方法迭代所有字典,选择'gems'
值,并取最大值
max(d['gems'] for d in my_data.values())
我会使用内置的
max
函数重新结束,并指定键
参数:
max_gems_key = max(dictionary, key=lambda a: dictionary[a]['gems'])
max_gems_val = dictionary[max_gems_key]
让我简化并分解所有内容:
def keyFunction(a):
return dictionary[a]['gems']
max_gems_key = max(dictionary, key=keyFunction)
max_gems_val = dictionary[max_gems_key]
发生的情况:我首先创建了一个函数,在收到字典键时查找gems-gems值是max
用来标识较大的值,因为没有它您无法分辨较大的值(例如is{'a':1,'b':2}>{'a':2,'b':1}
?)。然后,我调用max
函数,它遍历所有键,找到最大的-它,再次使用keyFunc
确定键的大小,并将最大的键分配给max\u gems\u key
。有关max
用法的进一步信息
希望对你有帮助 由于这是一个嵌套字典,如果您想使用
pandas
使用它,您也可以尝试这种方法
import pandas as pd
df = pd.DataFrame(data_dict).T
df['gems'].max()
这回答了你的问题吗?