2015-07-15 2 views
3

У меня есть три списка разной длины.Поиск минимальной длины нескольких списков

Например

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

ответ

11

Вы должны применить len() к каждому списку отдельно:

shortest_length = min(len(List1), len(List2), len(List3)) 

Если у вас уже есть последовательность списков, вам может использовать map() function или generator expression:

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) 
3

выражение Используйте генератор

min(len(i) for i in [List1,List2,List3]) 
Смежные вопросы