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])
以下代码返回[1, 0, 1, 2, 1, 1, 1, 3111111]
。不确定什么是默认密钥,并根据返回的逻辑?
另外,我实际上是想在列表中找到这些列表中的最小长度。
我写了这个min(len(a[0]),len(a[1]),len(a[2]))
。这可以做得更好吗?
答案 0 :(得分:9)
是的,您可以使用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
答案 1 :(得分: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
答案 2 :(得分:2)
您可以将其编写为循环来创建列表,而不必始终键入它:
min([len(x) for x in a])
无论内部有多少列表 a
,这都可以实现您想要的效果