zip() 기능 확장: 가장 긴 길이로 패딩
Python의 내장 zip() 함수는 여러 반복 가능 요소의 요소를 쌍으로 연결하지만 결과를 가장 짧은 반복 가능한 길이로 자릅니다. 가장 긴 입력에 맞게 None 값을 채우는 보다 포괄적인 zip이 필요한 경우 다음 해결 방법을 고려하세요.
Python 3: itertools.zip_longest
Python의 경우 3, itertools는 zip_longest() 기능을 제공합니다. 가장 긴 입력의 길이와 일치하도록 결과 목록을 확장합니다.
import itertools 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 또는 map None
Python 2에서는 다음을 사용할 수 있습니다. itertools.izip_longest(Python 2.6에서 도입됨) 또는 None으로 맵을 사용합니다.
from itertools import izip_longest a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] list(izip_longest(a, b, c)) # [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)] map(None, a, b, c) # [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
위 내용은 길이가 다른 Iterable을 처리하기 위해 Python의 zip() 함수를 어떻게 확장할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!