比较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}这样的单词吗?哦,我不认识当地人()。谢谢,我不认识当地人。谢谢