需要帮助在python中查找字典对象

时间:2014-05-29 20:10:59

标签: python list dictionary max min

我有一个字典对象说:

d = {
    '25478329': ['17647430', '376088951', '32416061', '43096205'],
    '43096205': '17647430',
    '376088951': ['17647430', '25478329', '32416061'],
    '32416061': ['17647430', '25478329']
}

我需要帮助找到具有最大数据量的密钥。 这里的数据是指列表中的字符串值。

2 个答案:

答案 0 :(得分:2)

您的问题可能更清楚,但如果您想要的是我在评论中建议的内容,那么这将有效:

def keyfunc(item):
    key, value = item
    if isinstance(key, str):
        return 1
    else:
        return len(key)

max(d.items(), key=keyfunc)[0]

在这里,我们定义一个关键函数,它接受dict.items()返回的键/值2元组,并且:

  • 如果值是字符串,则返回1.
  • 否则,返回字符串列表的长度。

然后,该key函数与内置max()函数一起使用,以返回具有最大字符串数的项,最后我们使用[0]从该项获取密钥。

答案 1 :(得分:0)

我知道您想要返回具有最大数据量的密钥。

一个非常实用的解决方案:

max_key = max(
    d.items(),
    key=lambda (_, values): len(values) if type(values) == list else 1
)[0]