목록 목록 전치
다음과 같은 목록 목록이 주어진 경우:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
우리의 목표는 목록을 전치하여 결과 in:
r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
zip 사용
Python의 zip() 함수는 여러 반복 가능 항목의 요소를 단일 튜플 목록으로 결합합니다. zip을 사용하여 원본 목록을 일련의 인수로 전달하여 전치된 목록을 만들 수 있습니다.
result = list(map(list, zip(*l)))
외부 list()는 튜플을 목록으로 변환하고 map() 함수는 이 변환을 다음에 적용합니다. zip 결과의 각 요소.
zip_longest 사용
itertools.zip_longest() 함수는 zip과 유사하지만 iterable의 길이가 다른 경우 데이터를 삭제하지 않습니다. 지정된 채우기 값으로 더 짧은 반복 가능 항목을 채웁니다(기본적으로 없음):
from itertools import zip_longest result = list(map(list, zip_longest(*l, fillvalue=None)))
설명
전치의 핵심은 zip을 사용하여 원본 목록의 하위 목록. zip() 함수는 동일한 인덱스에 있는 각 하위 목록의 요소 하나를 포함하는 튜플을 생성합니다. 그런 다음 이러한 튜플은 목록으로 변환되어 전치된 목록의 행을 생성합니다.
* 연산자를 사용하여 원본 목록을 zip에 대한 인수로 압축 해제하면 한 줄의 코드로 목록을 전치할 수 있습니다. map() 함수는 결과가 목록의 목록인지 확인하는 데 사용됩니다.
위 내용은 Python에서 목록 목록을 어떻게 전치할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!