반응형
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
반응형
'programing' 카테고리의 다른 글
유형별로 WPF 컨테이너의 자식을 가져오려면 어떻게 해야 합니까? (0) | 2023.04.18 |
---|---|
NSAttributedString 텍스트 정렬 추가 (0) | 2023.04.18 |
다트 목록에서 중복된 항목을 삭제하려면 어떻게 해야 합니까?list.filength()를 선택합니다. (0) | 2023.04.18 |
예쁜 Git 분기 그래프 (0) | 2023.04.18 |
NSUserDefaults - 키가 존재하는지 확인하는 방법 (0) | 2023.04.18 |