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')]
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] sort()์์์ key lambda ์ฌ์ฉํ๊ธฐ (0) | 2021.02.22 |
---|---|
[Python] collections ๋ผ์ด๋ธ๋ฌ๋ฆฌ deque, Counter (0) | 2021.02.21 |
[Python] ํ์ด์ฌ 2์ฐจ์ ๋ฆฌ์คํธ ์ด๊ธฐํ (0) | 2021.02.17 |
[Python] ๋ฆฌ์คํธ ํน์ ๊ฐ ๋ชจ๋ ์ ๊ฑฐํ๊ธฐ (0) | 2021.02.17 |
[Python] ๋ฌธ์์ด ํจ์ ์ด ์ ๋ฆฌ (0) | 2021.02.14 |