Zip을 최대 길이로 확장
Zip은 여러 반복 가능 항목을 결합하는 Python의 내장 함수입니다. 그러나 가장 짧은 반복 가능 길이에서 중지됩니다. 가장 긴 iterable의 길이와 일치하도록 결과를 채우려면 어떻게 해야 할까요?
해결책
Python 3에서는 itertools.zip_longest가 이 기능을 제공합니다. 기본적으로 None으로 모든 반복 가능 항목과 패드를 평가하여 정렬을 유지합니다.
a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] list(itertools.zip_longest(a, b, c)) # [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
fillvalue 매개변수를 사용하여 패딩 값을 사용자 정의할 수 있습니다.
list(itertools.zip_longest(a, b, c, fillvalue='foo')) # [('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Python 2의 경우 다음을 수행할 수 있습니다. itertools.izip_longest (Python 2.6 )를 사용하거나 None으로 매핑하세요:
a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] map(None, a, b, c) # [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
위 내용은 Python의 Zip 함수를 가장 긴 Iterable 길이로 어떻게 채울 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!