Python 如何在列表中打印列表的最大大小

Python 如何在列表中打印列表的最大大小,python,Python,例如: alist=[[(0, 0), (0, 1), (1, 1), (1, 2), (2, 2), (2, 1), (2, 0), (1, 0), (3, 0)], [(0, 2), (0, 3), (1, 3)], [(0, 4), (1, 4), (2, 4), (0, 5), (0, 6), (1, 6), (2, 6), (3, 6)], [(1, 5)], [(2, 3), (3, 3), (3, 4), (3, 5), (2, 5), (3, 2), (3, 1)]] for

例如:

alist=[[(0, 0), (0, 1), (1, 1), (1, 2), (2, 2), (2, 1), (2, 0), (1, 0), (3, 0)], 
[(0, 2), (0, 3), (1, 3)],
[(0, 4), (1, 4), (2, 4), (0, 5), (0, 6), (1, 6), (2, 6), (3, 6)],
[(1, 5)],
[(2, 3), (3, 3), (3, 4), (3, 5), (2, 5), (3, 2), (3, 1)]]

for i in dlist:
    print(len(i))
    print(max(len(i)))  #this gives me error
输出:

5
9
3
8
1
7

我想从上面的列表中打印出9作为输出。如何打印结果?

如果您可以确保嵌套仅为一个级别(即列表列表列表):

略显简洁

len(max(alist,key=len))

使用地图的功能样式:

print max(map(len, alist))

如果需要最长子列表的实际索引:

max(((i,l) for i,l in enumerate(alist)), key=lambda t: len(t[1]))[0]
或者,如评论中所述:

max(enumerate(alist), key=lambda t: len(t[1]))[0]

这也行得通。如果您不需要中间表单(我的表单生成每个子列表的长度,这会找到实际最长的子列表),我看不到它们之间有多少选择。事实上,一些分析显示这大约是我的版本的两倍。两者都不是很慢。
max(枚举(alist),key=lambda t:len(t[1])[0]
的工作原理与well@1_CR:你今天不是很简洁吗是的,这样更好。或者在size
alist.index(max(alist,key=len))上试试这个
max(enumerate(alist), key=lambda t: len(t[1]))[0]