numpy
이래로이 답변을 완벽하게 제공하는 것은 다른 답변에서 논의되었으며, 더 높은 순위의 배열에서 값을 함께 연결하는 것이 유용한 경우가 많습니다.
accepted answer 시퀀스가 list
list
의 S 같이 또한 이러한 2 레벨 이상의 numpy
어레이와 같은 다중 레벨 (들이지만, 경우하지만 랭크 1의 모든 시퀀스/배열 움직인다 또는), 각 순위를 반복해야합니다.
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([list('abc'), list('pdq'), list('xyz')])
c = np.array([[frobnicate(aval, bval) for aval, bval in zip(arow, brow)] for arow, brow in zip(a, b)])
와 동일한 형상의 이차원 중첩 시퀀스 중 어느 세트에 대해 작동 동일한 개념 : 아래 차원 numpy
배열 예이다
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [list('abc'), list('pdq'), list('xyz')]
c = [[frobnicate(aval, bval) for aval, bval in zip(arow, brow)] for arow, brow in zip(a, b)]
하나 중첩의 양이면
from itertools import zip_longest as zipl
a = [[], [4, 5, 6], [7, 8, 9]] # empty list in the first row
b = [list('abc'), list('pdq'), []] # empty list in the last row
c = [[frobnicate(aval, bval) for aval, bval in zipl(arow, brow)] for arow, brow in zipl(a, b)]
이 작업을 완료하려면'future_builtins'도 언급 할 것입니다. – georg
그래서 python3의 zip은 itertools.izip과 동일합니까? 또는 목록의 크기에 따라 변경됩니까? – will
@will : 예, Python3의'zip'은 Python2의'itertools.izip'과 같습니다. (목록의 크기에 따라 동작이 바뀌지는 않습니다.) 파이썬 3에서 오래된'zip' 동작을 얻으려면'list (zip (a, b))'를 사용하십시오. – unutbu