itertools๋ ํ์ด์ฌ์์ ๋ฐ๋ณต๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค.
๊ทธ ์ค ์์ฃผ ์ฌ์ฉ๋๋ 4๊ฐ์ง ํด๋์ค์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
์์๋ณด๊ธฐ ์ ๊ณตํต์ผ๋ก ์์๋ ๊ฒ์ด ์์ต๋๋ค.
- itertools๋ ํ์ด์ฌ ์ธ์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ฏ๋ก import ์ ์ธ์ ํด์ฃผ์ด์ผํฉ๋๋ค. ๋ง์ฝ combinations ํด๋์ค๊ฐ ํ์ํ๋ค๋ฉด from itertools import combinations ๋ก ์ ์ธํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
- ํญ์ list() ๋ฅผ ํด์ฃผ์ด ๋ฆฌ์คํธ ๊ฐ์ฒด๋ก ๋ฐ์์ผ ํฉ๋๋ค.
- combinations ์ฒ๋ผ ๋ค์ s ๊ฐ ๋ถ์ด์๋์ง ํ์ธํด์ฃผ์ด์ผํฉ๋๋ค. product ๊ฒฝ์ฐ๋ s๊ฐ ์์ต๋๋ค.
| ํจ์ |
์ค๋ช
|
์ฌ์ฉ๋ฒ |
| permutations |
iterable ๊ฐ์ฒด์์ r๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์ ์์๋๋ก ๋์ดํฉ๋๋ค. |
permutations(๋ฆฌ์คํธ, r๊ฐ) |
| combinations |
iterable ๊ฐ์ฒด์์ r๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์ ์์๋ ๊ณ ๋ คํ์ง ์๊ณ ๋์ดํฉ๋๋ค. |
combinations(๋ฆฌ์คํธ, r๊ฐ) |
| product |
iterable ๊ฐ์ฒด์์ r๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์ ์์๋๋ก ๋์ดํ๊ณ ์ค๋ณต์ ํ์ฉํฉ๋๋ค. |
product(๋ฆฌ์คํธ, repeat =3๊ฐ) |
| combinations_with_replacement |
iterable ๊ฐ์ฒด์์ r๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์ ์์๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ์ค๋ณต์ ํ์ฉํ ์ฑ ๋์ดํฉ๋๋ค. |
combinations_with_replacement(๋ฆฌ์คํธ, r๊ฐ) |
from itertools import permutations
from itertools import combinations
from itertools import product
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
print(list(permutations(data, 3)))# 3๊ฐ ๋ฝ์ ์์ ๊ณ ๋ ค && ๋ง์ฝ data ์๋ณด๋ค ๋๋ฒ์งธ ์ธ์๊ฐ ๋ ํฌ๋ฉด ๋น ๋ฆฌ์คํธ ๋ฐํ
#[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
print(list(combinations(data, 2)))# 2๊ฐ ๋ฝ์ ์์ ๊ณ ๋ ค ์ํจ
#[('A', 'B'), ('A', 'C'), ('B', 'C')]
print(list(product(data, repeat=3)))# 3๊ฐ ๋ฝ์ ์์ ๊ณ ๋ คํ๊ณ ์ค๋ณต ํ์ฉ
#๋ฐ์ดํฐ๊ฐ ๋ง์์ ์ง์ ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
print(list(combinations_with_replacement(data, 3)))# 3๊ฐ ๋ฝ์ ์์ ๊ณ ๋ ค์ํ๊ณ ์ค๋ณต ํ์ฉ
#[('A', 'A', 'A'), ('A', 'A', 'B'), ('A', 'A', 'C'), ('A', 'B', 'B'), ('A', 'B', 'C'), ('A', 'C', 'C'), ('B', 'B', 'B'), ('B', 'B', 'C'), ('B', 'C', 'C'), ('C', 'C', 'C')]