목록에서 목록을 압축하는 방법


92

다음 목록 목록을 압축하고 싶습니다.

>>> zip([[1,2], [3,4], [5,6]])
[[1,3,5], [2,4,6]]

이는 zip목록이 개별 구성 요소로 분할 된 경우에만 현재 구현 으로 달성 할 수 있습니다 .

>>> zip([1,2], [3,4], [5,6])
   (1, 3, 5), (2, 4, 6)]

목록을 분할하고 개별 요소를에 전달하는 방법을 알 수 없습니다 zip. 기능적 솔루션이 선호됩니다.

답변:


146

이 시도:

>>> zip(*[[1,2], [3,4], [5,6]])
[(1, 3, 5), (2, 4, 6)]

인수 목록 풀기 참조 :

반대 상황은 인수가 이미 목록이나 튜플에 있지만 별도의 위치 인수가 필요한 함수 호출을 위해 압축을 풀어야 할 때 발생합니다. 예를 들어, 내장 range () 함수는 별도의 시작 및 중지 인수를 예상합니다. 별도로 사용할 수없는 경우 * 연산자를 사용하여 함수 호출을 작성하여 목록 또는 튜플에서 인수를 압축 해제합니다.

>>> range(3, 6)             # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args)            # call with arguments unpacked from a list
[3, 4, 5]

4
작동 방식 은 docs.python.org/tutorial/… 을 참조하세요 .
— 오전

2
백만 개의 항목이있는 목록이있는 경우 대안을보고 싶습니다. ... 함수 호출에 백만 항목을 풀고 좋은 생각되지 않을 수도 있습니다
— Blixt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.