2014-07-16 2 views
0

다른 목록을 포함하는 목록이 있으며 최소한의 요소로 목록을 검색하려고합니다. 한 가지 확실한 해결책은 다음과 같습니다파이썬 : 더 작은 크기의 목록을 가져 오는 관용적 인 방법

list_of_list = ... 
least = list_of_lists[0] 
for list in list_of_lists[1:] 
    if len(list) < len(least): 
    least = list 
return least 

이 할 수있는 더 관용적 방법이 있나요?

답변

5

키로 len()에 사용 min() :

min(list_of_lists, key=len) 

이 목록의 짧은 반환

실제로 나는 분의 동작을 (변경할 수 있는지 찾기 위해 노력했다
>>> import random 
>>> list_of_lists = [[None] * random.randint(3, 10) for _ in range(10)] 
>>> min(list_of_lists, key=len) 
[None, None, None] 
+0

)하지만, 나는 성공적이지 못했다. 빠른 답변 주셔서 감사합니다! – Veritas

관련 문제