比较Python词典-->;最大入口

比较Python词典-->;最大入口,python,dictionary,Python,Dictionary,我有几本字典: a["size"] = 12 b["size"] = 10 c["size"] = 11 我需要具有最大“大小”项-->的变量名(a、b或c),您将如何实现它?我可以用几个if语句来完成。但是有更简单的方法吗?如果我需要最大的数字,这将很容易(使用max(..)。使用下面的代码获取具有最大大小的dict变量名,,而不知道变量名。: >>> a = {'size': 12} >>> b = {'size': 10} >>&g

我有几本字典:

a["size"] = 12    
b["size"] = 10
c["size"] = 11

我需要具有最大“大小”项-->的变量名(a、b或c),您将如何实现它?我可以用几个if语句来完成。但是有更简单的方法吗?如果我需要最大的数字,这将很容易(使用max(..)。

使用下面的代码获取具有最大大小的dict变量名,,而不知道变量名。

>>> a = {'size': 12}
>>> b = {'size': 10}
>>> c = {'size': 11}
>>> l = locals()
>>> max("abc", key=lambda x: l[x]['size'])
'a'
items = locals()

biggest = 0
a = {'size': 0}
b = {'size': -1}
c = {'size': 5}
d = {'size': 10}
e = {'size': 20}
for key in items.keys():
    if type(items[key]) == dict:
        size = items[key].get('size')
        if size is not None and items[key].get('size') > biggest:
            biggest = size
            name = key
print name

使用下面的代码获取最大大小的dict变量名,,而不知道变量名

items = locals()

biggest = 0
a = {'size': 0}
b = {'size': -1}
c = {'size': 5}
d = {'size': 10}
e = {'size': 20}
for key in items.keys():
    if type(items[key]) == dict:
        size = items[key].get('size')
        if size is not None and items[key].get('size') > biggest:
            biggest = size
            name = key
print name

您还可以使用列表理解:

val=max([x["size"] for x in [a,b,c]])

您还可以使用列表理解:

val=max([x["size"] for x in [a,b,c]])

你允许在之前写一个像{'a':a,'b':b,'c':c}这样的单词吗?你允许在之前写一个像{'a':a,'b':b,'c':c}这样的单词吗?哦,我不认识当地人()。谢谢,我不认识当地人。谢谢