패딩으로 Zip 기능 확장
Zip()은 여러 시퀀스의 요소를 단일 튜플 목록으로 결합하는 데 유용한 함수입니다. 그러나 가장 짧은 입력 시퀀스만큼의 요소를 가진 튜플만 생성한다는 점에서 한계가 있습니다. 이는 다양한 길이의 시퀀스로 작업할 때 불완전한 결과를 초래할 수 있습니다.
이러한 제한을 극복하기 위해 zip_longest()라는 고급 기능이 도입되었습니다. zip_longest()는 Python 3에서 사용할 수 있으며, 결과 목록의 길이가 가장 짧은 입력이 아닌 가장 긴 입력의 길이와 일치하도록 결과에 누락된 값을 자동으로 채우는 향상된 버전의 zip()을 제공합니다.
zip_longest()를 사용하려면 결합하려는 시퀀스를 인수로 전달하기만 하면 됩니다. 이 함수는 입력 시퀀스의 각 해당 요소 집합에 대해 튜플을 생성하고 누락된 값을 기본 패딩 값(일반적으로 없음)으로 채웁니다.
예를 들어 다음 코드 조각을 고려하세요.
a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] print(list(itertools.zip_longest(a, b, c)))
이 코드는 다음 튜플 목록을 출력합니다.
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
가능한 한 결과 목록의 길이는 가장 긴 입력 시퀀스(b)와 같습니다. a와 c의 누락된 값은 None으로 채워졌습니다.
fillvalue 매개변수를 사용하여 사용자 정의 패딩 값을 지정할 수도 있습니다. 예를 들어, 다음 코드 조각은 'foo' 문자열로 누락된 값을 채웁니다.
print(list(itertools.zip_longest(a, b, c, fillvalue='foo')))
이렇게 하면 다음 튜플 목록이 출력됩니다.
[('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
위 내용은 Python\의 `zip_longest()` 함수는 길이가 다른 입력 시퀀스를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!