Posts Itertools.product() (Python 3)
Post
Cancel

Itertools.product() (Python 3)

  • URL : https://www.hackerrank.com/challenges/itertools-product/problem
  • This tool computes the cartesian product of input iterables.
  • It is equivalent to nested for-loops.
  • For example, product(A, B) returns the same as ((x,y) for x in A for y in B).

  • Sample Code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    >>> from itertools import product
    >>>
    >>> print list(product([1,2,3],repeat = 2))
    [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
    >>>
    >>> print list(product([1,2,3],[3,4]))
    [(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]
    >>>
    >>> A = [[1,2,3],[3,4,5]]
    >>> print list(product(*A))
    [(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 3), (3, 4), (3, 5)]
    >>>
    >>> B = [[1,2,3],[3,4,5],[7,8]]
    >>> print list(product(*B))
    [(1, 3, 7), (1, 3, 8), (1, 4, 7), (1, 4, 8), (1, 5, 7), (1, 5, 8), (2, 3, 7), (2, 3, 8), (2, 4, 7), (2, 4, 8), (2, 5, 7), (2, 5, 8), (3, 3, 7), (3, 3, 8), (3, 4, 7), (3, 4, 8), (3, 5, 7), (3, 5, 8)]
    
  • Task
    • You are given a two lists A and B. Your task is to compute their cartesian product A X B.
  • Example ```python A = [1, 2] B = [3, 4]

AxB = [(1, 3), (1, 4), (2, 3), (2, 4)]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
- Note: A and B are sorted lists, and the cartesian product's tuples should be output in sorted order.

- Input Format
    - The first line contains the space separated elements of list A.
    - The second line contains the space separated elements of list B.
    - Both lists have no duplicate integer elements.

- Constraints
    - 0 < A < 30
    - 0 < B < 30

- Output Format
    - Output the space separated tuples of the cartesian product.

#### 문제풀이
- list A와 B가 주어졌을때 A X B 의 데카르트의 곱을 구하는 것
- python의 product를 사용하였고, list형태로 받은뒤 해당 list의 원소를 for문으로 print하는 형식으로 만듬
- 아마 다른방법도 있을듯 하다..


```python
from itertools import product
A = list(map(int,(input().split())))
B = list(map(int,(input().split())))
p = list(product(A,B))
for i in p:
    print(i, end=' ')
1
2
3
4
5
 1 2
 3 4


(1, 3) (1, 4) (2, 3) (2, 4) 
1
This post is licensed under CC BY 4.0 by the author.