计算列表中列表之间的最小长度

Pyt*_*ast 3 python list

a=[[1,0,1,2,1,1,1,3111111],[31,1,4,51,1,1,1],[1,1,6,7,8]]
print min(a[0],a[1],a[2])
Run Code Online (Sandbox Code Playgroud)

以下代码返回[1, 0, 1, 2, 1, 1, 1, 3111111].不确定什么是默认密钥并根据返回的逻辑?

另外,我实际上试图在列表中找到这些列表中的最小长度.

我写了这个min(len(a[0]),len(a[1]),len(a[2])).这可以做得更好吗?

jab*_*edo 10

是的,您可以使用map迭代内部列表来创建长度列表,然后获得最小值min:

>>> a=[[1,0,1,2,1,1,1,3111111],[31,1,4,51,1,1,1],[1,1,6,7,8]]
>>> min(map(len, a))
 5
Run Code Online (Sandbox Code Playgroud)


grc*_*grc 9

一些选择:

a = [[1,0,1,2,1,1,1,3111111], [31,1,4,51,1,1,1], [1,1,6,7,8]]

print min(a, key=len)
# [1, 1, 6, 7, 8]

print len(min(a, key=len))
# 5

print min(map(len, a))
# 5
Run Code Online (Sandbox Code Playgroud)