查找多个列表的最小长度

use*_*243 4 python list min

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

例如

List1 is of length 40
List2 is of length 42
List3 is of length 47
Run Code Online (Sandbox Code Playgroud)

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

我试过了:

 min(len([List1,List2,List3]))
Run Code Online (Sandbox Code Playgroud)

但我明白了 TypeError: 'int' object is not iterable

Mar*_*ers 12

您需要len()单独申请每个列表:

shortest_length = min(len(List1), len(List2), len(List3))
Run Code Online (Sandbox Code Playgroud)

如果您已经有一系列列表,则可以使用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
Run Code Online (Sandbox Code Playgroud)

要查找最短列表,而不是最短的长度,请使用以下key参数:

list_of_lists = [List1, List2, List3]
shortest_list = min(list_of_lists, key=len)
Run Code Online (Sandbox Code Playgroud)