我有一个字典对象说:
d = {
'25478329': ['17647430', '376088951', '32416061', '43096205'],
'43096205': '17647430',
'376088951': ['17647430', '25478329', '32416061'],
'32416061': ['17647430', '25478329']
}
我需要帮助找到具有最大数据量的密钥。 这里的数据是指列表中的字符串值。
答案 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元组,并且:
然后,该key函数与内置max()
函数一起使用,以返回具有最大字符串数的项,最后我们使用[0]
从该项获取密钥。
答案 1 :(得分:0)
我知道您想要返回具有最大数据量的密钥。
一个非常实用的解决方案:
max_key = max(
d.items(),
key=lambda (_, values): len(values) if type(values) == list else 1
)[0]