从序列列表中查找具有最多键数的字典

时间:2017-10-04 04:58:02

标签: python list dictionary

给定一个词典items列表,我想识别具有最多键数的词典。更准确地说:我希望在列表中使用index()(或其他合适的方法),以便随后可以访问其某些键的值。

要获得最大数量的键(其中将有多个键)的项目的大小,我这样做:

max([len(item.keys()) for item in items])

如何修改此项(使用index()或其他)来识别该项目? 这个最大尺寸的任何就足够了)。每个字典都有一个键name,它在列表中始终是唯一的。

2 个答案:

答案 0 :(得分:4)

您正在寻找argmax。在python中,可以使用max + enumerate完成。

i, d = max(enumerate(items), key=lambda x: len(x[1])) 

其中d是密钥数最多的dicti是其索引。

答案 1 :(得分:1)

假设您实际上并不需要最大字典的索引,而只需要字典本身:

largest_dictionary = max(items, key=len)

其中items是您list的{​​{1}}。