반응형
Python의 쌍대 외적
이 질문에 이미 답변이 있습니다.
- 일련의 목록의 데카르트 곱을 얻습니까? 11 답변
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
.
생성기를 사용하면 itertools가 필요하지 않습니다.
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
반응형
'program tip' 카테고리의 다른 글
FileUpload 서버 컨트롤을 사용하지 않고 ASP.net에서 파일 업로드 (0) | 2020.08.23 |
---|---|
Hamcrest 비교 컬렉션 (0) | 2020.08.23 |
IEnumerable에서 유형 T 가져 오기 (0) | 2020.08.23 |
자바 스크립트 교체 / 정규식 (0) | 2020.08.23 |
JSHINT가 이것이 엄격한 위반이라고 불평하는 이유는 무엇입니까? (0) | 2020.08.23 |