>백엔드 개발 >파이썬 튜토리얼 >Python\의 `zip_longest()` 함수는 길이가 다른 입력 시퀀스를 어떻게 처리합니까?

Python\의 `zip_longest()` 함수는 길이가 다른 입력 시퀀스를 어떻게 처리합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-05 04:14:09876검색

How Does Python's `zip_longest()` Function Handle Unequal-Length Input Sequences?

패딩으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.