-2

由于要求更改,不得不重新编写问题。

我有一本字典,如下所示:

d = {'a': [4, 2], 'b': [3, 4], 'c': [4, 3], 'd': [4, 3], 'e': [4], 'f': [4], 'g': [4]}

我想获取与字典 d 中最小长度相关联的键,以及具有最大值的键。

在这种情况下,长度最小的键(此字典中列表的最小长度)应返回

'e, 'f', 'g'

那些具有最大值(每个列表中的整数之和)的应该返回

'b' 'c'

我试过了

min_value = min(dict.itervalues())
min_keys = [k for k in d if dict[k] == min_value]

但这并没有给我想要的结果。

有任何想法吗?

谢谢!

4

1 回答 1

7
def get_smallest_length(x):
    return [k for k in x.keys() if len(x.get(k))==min([len(n) for n in x.values()])]

def get_largest_sum(x):
    return [k for k in x.keys() if sum(x.get(k))==max([sum(n) for n in x.values()])]

x = {'a': [4, 2], 'c': [4, 3], 'b': [3, 4], 'e': [4], 'd': [4, 3], 'g': [4], 'f': [4]}

print get_smallest_length(x)
print get_largest_sum(x)

回报:

['e', 'g', 'f']
['c', 'b', 'd']
于 2012-07-30T22:33:36.973 回答