Python:如何获取字典中特定组的最大值?

时间:2017-01-17 15:53:58

标签: python dictionary

所以我found要获得最大字典值,我可以这样做:

dict[max(dict, key=dict.get)]

我的字典看起来像这样:     {article_title:链接到多少篇不同文章的数量}

例如:     {'10世纪':2,'波兰':0,'墨西哥':11}

从group()我得到一个元组列表(article_title,article object),例如:     [(墨西哥,墨西哥()),(波兰,波兰())]

对于该组,我想检查article_title可能具有的最大值。

但是如何查找特定键组的字典值? 我真的迷路了...我认为我所写的内容没有意义:

dict = my dictionary
group_of_keys = group()  # returns specific list of tuples. The first term of the tuple is my key, the second is irrelevant
max_value = dict[max(dict[group_of_keys], key=dict.get)]

请帮忙!

2 个答案:

答案 0 :(得分:3)

我假设group()返回list of keys。如果是这样,你可以获得这些键的值,然后找出它们的最大值。

max(map(dict.get, groups()))

编辑:当您澄清group()返回(article_title, article_object)的元组并且您希望article_title为关键时,我们可以做的就是获取那些值键为dict.get(title) for title, article in group(),然后在这些值中找到最大值。所以,你的问题的答案是:

max(dict.get(title) for title, article in group())

小注意:dict不是变量的好名称,因为它会影响python的保留关键字dict

答案 1 :(得分:1)

  

按照组I,我假设您的意思是键的一个子集

my_dict = {} # your dictionary
group = get_group(my_dict)
# since your group returns tuples of (key, something else)
group = [ i[0] for i in group ]
max_group_key = max(group, my_dict.get)
max_group_value = my_dict[max_group_key]

为了清楚起见,我正在拿一本月份字典到温度。 max_key会告诉我温度最高的那个月。 max_group_key会告诉我该组中温度最高的月份。

temperature = {
    "jan": 17, "feb": 18, "mar": 19, "apr": 24, "may": 26, 
    "jun": 25, "jul": 22, "aug": 21, "sep": 20, "oct": 20,
    "nov": 18, "dec": 15
}

# hottest month
max_key = max(temperature, key=temperature.get)
max_val = temperature[max_key]

print("hottest month: {0}, temperature: {1}".format(max_key, max_val))

# only for a few months
group = [ ("jan", "foo"), ("feb", "bar"), ("jun", "baz") ]
group = [ i[0] for i in group ]
max_group_key = max(group, key=temperature.get)
max_group_val = temperature[max_group_key]

print("hottest month: {0}, temperature: {1}".format(max_group_key, max_group_val))