【问题标题】:Python miminum length/max value in dictionary of lists列表字典中的 Python 最小长度/最大值
【发布时间】:2012-07-28 15:43:43
【问题描述】:

由于需求变化,不得不重新编写问题。

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

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]

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

有什么想法吗?

谢谢!

【问题讨论】:

标签: python list dictionary max min


【解决方案1】:
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']

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 2016-05-19
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2021-07-30
    相关资源
    最近更新 更多