두 개의 2D 목록이 있습니다. 예:
a = [[1, 2], [3, 4]]
b = [[5, 6], [7, 8]]
그러면 [[(1,5), (2,6)], [(3,7), (4,8)]] 튜플의 2차원 목록을 어떻게 얻을 수 있습니까?
귀하가 다음과 같이 귀하의 질문에 답변한 것을 확인했습니다.
[[(i1,j1) for i1, j1 in zip(i, j)] for i, j in zip(a, b)]
그러나 유사한 라인을 따라 단순화된 형식이 존재하지만 튜플을 여러 변수로 압축을 풀지 않고 직접 작업합니다. 첫 번째 목록 이해는 다음 list
의 출력을 호출 하여 대체할 수도 있습니다 zip
.
[list(zip(*t)) for t in zip(a,b)]
또는 대안:
vars = (a, b)
[list(zip(*t)) for t in zip(*vars)]
이것은 약간 더 단순할 뿐만 아니라 더 많은 변수로 일반화하는 것이 더 쉽다는 장점이 있습니다. 예를 들어 다음과 같은 경우:
a = [[1, 2], [3, 4]]
b = [[5, 6], [7, 8]]
c = [[9, 10], [11, 12]]
그러면 다음과 같이 할 수 있습니다.
vars = (a, b, c)
[list(zip(*t)) for t in zip(*vars)]
당신에게 줄 것:
[[(1, 5, 9), (2, 6, 10)], [(3, 7, 11), (4, 8, 12)]]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다