Python 在字典中的另一个列表中查找列表的最大长度

Python 在字典中的另一个列表中查找列表的最大长度,python,list,dictionary,nested-lists,Python,List,Dictionary,Nested Lists,我需要在另一个列表中得到一个列表的最大长度,而另一个列表在字典中 假设我有: x={ 'a':[[1],[1,2,3],[1],[1]], 'b':[[1],[1,2],[1],[1]], 'c':[[1],[1,2],[1],[1]] } 我所需要的就是根据第二个“a”列表获得3个最大长度 到目前为止,我一直在寻找类似的方法,但我只能在列表的第一级找到迭代,我只得到了4个长度的“a”、“b”和“c”值:4个列表,这不是我要寻找的 到目前为止,我已经: x={ 'a':[[1],[1,2,3]

我需要在另一个列表中得到一个列表的最大长度,而另一个列表在字典中

假设我有:

x={
'a':[[1],[1,2,3],[1],[1]],
'b':[[1],[1,2],[1],[1]],
'c':[[1],[1,2],[1],[1]]
}
我所需要的就是根据第二个“a”列表获得3个最大长度

到目前为止,我一直在寻找类似的方法,但我只能在列表的第一级找到迭代,我只得到了4个长度的“a”、“b”和“c”值:4个列表,这不是我要寻找的

到目前为止,我已经:

x={
'a':[[1],[1,2,3],[1],[1]],
'b':[[1],[1],[1],[1]],
'c':[[1],[1],[1],[1]]
}

maxlist=len(x[[k for k in x.keys() if x[k]==max(x.values(),key=len)][0]])

您可以忽略字典的键,而是使用双最大值:

输出:

3

您可以忽略字典的键,而是使用双最大值:

输出:

3

你需要变平

>>> counts = [len(b) for a in x.values() for b in a]
[1, 3, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1]

>>> max(counts)
3
或者,为了获得最佳性能,请使用发电机:

max(len(b) for a in x.values() for b in a)

你需要变平

>>> counts = [len(b) for a in x.values() for b in a]
[1, 3, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1]

>>> max(counts)
3
或者,为了获得最佳性能,请使用发电机:

max(len(b) for a in x.values() for b in a)
您还可以使用itertools.chain:

您还可以使用itertools.chain:


这很好,我一定会用双倍最大值练习!非常感谢你,你是个救生员@维克多很乐意帮忙!这很好,我一定会用双倍最大值练习!非常感谢你,你是个救生员@维克多很乐意帮忙!使用这种方法,我建议您使用生成器理解,而不是构建列表。对于包含大量子列表的词典,创建列表可能会很昂贵。太棒了!我会考虑的。非常感谢你的帮助!使用这种方法,我建议您使用生成器理解,而不是构建列表。对于包含大量子列表的词典,创建列表可能会很昂贵。太棒了!我会考虑的。非常感谢你的帮助!