itertools

ํšจ์œจ์ ์œผ๋กœ iterable ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ

๋ชจ๋“  ์˜ˆ์‹œ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์Œ

  • arr๊ณผ r
arr = ['A', 'B', 'C']
r = 2
  • ๊ฒฐ๊ณผ๊ฐ’์ธ iterable ์•ˆ์˜ ๊ฐ ์š”์†Œ๋Š” tuple

๐Ÿ“–์ˆœ์—ด(permutations)

์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ ์ค‘์—์„œ r๊ฐœ๋ฅผ ์„ ํƒํ•ด ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ

from itertools import permutations
 
perm = permutations(arr, r) # [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
  • ์ค‘๋ณต X ์ˆœ์„œ O (A, B) != (B, A)

๐Ÿ“–์กฐํ•ฉ(combinations)

์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ ์ค‘์—์„œ r๊ฐœ๋ฅผ ์„ ํƒ

com = combinations(arr, r) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
  • ์ค‘๋ณต X ์ˆœ์„œ X (A, B) == (B, A)

์ค‘๋ณต ์ˆœ์—ด(product)

์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ ์ˆœ์—ด

prod = product(n, repeat=2) # [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
  • ์ค‘๋ณต O ์ˆœ์„œ O

๐Ÿ“–์ค‘๋ณต ์กฐํ•ฉ(combinations_with_replacement)

์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ ์กฐํ•ฉ

com_re = combinations_with_replacement(n, r) # [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
  • ์ค‘๋ณต O ์ˆœ์„œ X