我有这样的事情
d = { address { 'Avenue' : 3000,
'Street' : 3000,
'road' : 4000},
movieprice {
'panda' : 40,
'fastandfurious' : 30,
'starwars': 50}}
我想要把这样的东西拿出来
address Avenue,Street,road 4000 ---> last Column should max of values max(3000,3000,4000)
movie panda,fastandfurious,starwars 50 --> max of value.
任何帮助表示感谢。
答案 0 :(得分:1)
这个怎么样(假设我们修复你的字典):
d = {'address': {'Avenue': 3000,
'Street': 3000,
'road': 4000},
'movieprice': {'panda': 40,
'fastandfurious': 30,
'starwars': 50}}
for k, nested in d.items():
print("%s %s, %d" % (k, ', '.join(nested.keys()), max(nested.values())))
打印:
address Street, road, Avenue, 4000
movieprice panda, fastandfurious, starwars, 50
答案 1 :(得分:0)
要查找字典的最大值,您可以
d = some_dictionary
max(d.values())
这会给你最大的价值。至于找到具有该最大值的键,您必须遍历字典键并对max(d.values())
进行测试,因为多个键可以具有相同的值。所以它就是这样的
d = some_dictionary
max_value_keys = [d[x] for x in d.keys if d[x] == max(d.values())]
答案 2 :(得分:0)
首先,您需要使字典有效。如果您将其嵌套在另一个字典中,则必须将每个字典定义为键值对的值。这是正确的代码:
d = { 'address' : { 'Avenue' : 3000,
'Street' : 3000,
'road' : 4000},
'movieprice' : {
'panda' : 40,
'fastandfurious' : 30,
'starwars': 50}}
从那里,你可以使用Bah的解决方案来遍历字典并打印他们的密钥及其最大值。
答案 3 :(得分:0)
对字典进行排序并打印值
import operator
d = {} # your nested dictonary
for k, nested in d.items():
print k, ",".join([item[0] for item in sorted(nested.items(), key=operator.itemgetter(0))]), max(nested.values())
输出:
movieprice fastandfurious,panda,starwars 50
address Avenue,Street,road 4000
答案 4 :(得分:0)
尝试以下方法:
for i in d:
print i, ','.join(d[i].keys()), max(d[i].values())
>>> for i in d:
... print i, ','.join(d[i].keys()), max(d[i].values())
...
movieprice starwars,panda,fastandfurious 50
address Street,Avenue,road 4000
>>>