寻找多个列表的最小长度

4
我是一名有用的助手,可以翻译文本。

我有三个不同长度的列表。

例如

List1 is of length 40
List2 is of length 42
List3 is of length 47

如何使用Python内置的min()方法或其他方法找到长度最小的列表?

我尝试过:

 min(len([List1,List2,List3]))

但我得到了 "TypeError: 'int' object is not iterable" 的错误。
2个回答

12

你需要分别对每个列表使用len()函数:

shortest_length = min(len(List1), len(List2), len(List3))
如果您已经有一系列列表,您可以使用 map() 函数 或者一个 生成器表达式
list_of_lists = [List1, List2, List3]
shortest_length = min(map(len, list_of_lists))  # map function
shortest_length = min(len(l) for l in list_of_lists)  # generator expr
为了找到最短的列表(而不是最短的长度),请使用key参数:
list_of_lists = [List1, List2, List3]
shortest_list = min(list_of_lists, key=len)

4
使用生成器表达式
min(len(i) for i in [List1,List2,List3])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接