programing

Python의 쌍별 교차 제품

topblog 2023. 4. 18. 21:40
반응형

Python의 쌍별 교차 제품

Python의 임의의 긴 리스트에서 크로스 제품 페어의 리스트를 취득하려면 어떻게 해야 합니까?

a = [1, 2, 3]
b = [4, 5, 6]

crossproduct(a,b)양보해야 한다[[1, 4], [1, 5], [1, 6], ...].

Python 2.6 이상이면 itertools.product를 찾고 있습니다.

>>> import itertools
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> itertools.product(a,b)
<itertools.product object at 0x10049b870>
>>> list(itertools.product(a,b))
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

목록을 요청했으므로:

[(x, y) for x in a for y in b]

그러나 생성기를 사용하여 목록 전체를 반복하는 경우 목록의 오버헤드를 피할 수 있습니다.

((x, y) for x in a for y in b)

에서 동일하게 동작합니다.for루프는 생성되지 않습니다.list.

발전기를 사용하면 단순하게 다음과 같은 반복 작업이 필요하지 않습니다.

gen = ((x, y) for x in a for y in b)

for u, v in gen:
    print u, v

언급URL : https://stackoverflow.com/questions/2541401/pairwise-crossproduct-in-python

반응형