티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Transpose/Unzip Function (inverse of zip)?
바꾸다 / 압축풀기(zip의 역함수) 함수?
문제 내용
I have a list of 2-item tuples and I'd like to convert them to 2 lists where the first contains the first item in each tuple and the second list holds the second item.
저는 2개의 항목을 가진 튜플 리스트가 있고, 이를 각각 첫 번째 항목과 두 번째 항목을 갖는 2개의 리스트로 변환하고 싶습니다.
For example:
예를 들어:
original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# and I want to become...
result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
Is there a builtin function that does that?
이를 수행하는 내장 함수가 있나요?
높은 점수를 받은 Solution
In 2.x, zip
is its own inverse! Provided you use the special * operator.
2.x 버전에서는, zip 함수가 그 자체로 반대 동작을 합니다! 특별한 * 연산자를 사용하는 경우 말이죠.
>>> zip(*[('a', 1), ('b', 2), ('c', 3), ('d', 4)])
[('a', 'b', 'c', 'd'), (1, 2, 3, 4)]
This is equivalent to calling zip
with each element of the list as a separate argument:
이는 리스트의 각 요소를 개별 인수로 사용하여 zip을 호출하는 것과 동일합니다.
zip(('a', 1), ('b', 2), ('c', 3), ('d', 4))
except the arguments are passed to zip
directly (after being converted to a tuple), so there's no need to worry about the number of arguments getting too big.
각 요소를 개별 인수로 zip에 전달하는 것과 동일한 기능을 합니다. 다만, zip으로 전달하기 전에 각 요소가 튜플로 변환되고 바로 zip으로 전달되기 때문에 인수의 수가 너무 많아지는 것을 걱정할 필요가 없습니다.
In 3.x, zip
returns a lazy iterator, but this is trivially converted:
Python 3.x에서는 zip이 lazy iterator를 반환하지만, 이를 쉽게 변환할 수 있습니다.
>>> list(zip(*[('a', 1), ('b', 2), ('c', 3), ('d', 4)]))
[('a', 'b', 'c', 'd'), (1, 2, 3, 4)]
가장 최근 달린 Solution
Consider using more_itertools.unzip:
more_itertools.unzip를 사용하는 것을 고려해보세요.
>>> from more_itertools import unzip
>>> original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> [list(x) for x in unzip(original)]
[['a', 'b', 'c', 'd'], [1, 2, 3, 4]]
출처 : https://stackoverflow.com/questions/19339/transpose-unzip-function-inverse-of-zip
'개발 > 파이썬' 카테고리의 다른 글
하위 디렉토리를 탐색하지 않고 현재 디렉토리 내 파일들만 검색하기 (0) | 2023.02.07 |
---|---|
딕셔너리에서 첫 번째 키를 찾는 방법 (0) | 2023.02.05 |
하나의 리스트를 기준으로 다른 리스트 정렬하기 (0) | 2023.02.04 |
점 "."을 사용하여 딕셔너리 멤버에 접근하기 (0) | 2023.02.04 |
딕셔너리에서 키-값 쌍의 하위 집합 만들기 (0) | 2023.02.04 |