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


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.