Combinations vs. permutations vs. product

๊น€ํ•œ์ค€ยท2021๋…„ 10์›” 12์ผ
0

๐Ÿš€ ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์กฐํ•ฉ ๊ตฌํ•˜๊ธฐ

๐Ÿ”ฅ product

๐Ÿ“ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฆฌ์ŠคํŠธ์—์„œ ๋ชจ๋“  ์กฐํ•ฉ์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค๋ฉด, product๋ฅผ ์‚ฌ์šฉ

from itertools import product
items = [['a', 'b', 'c,'], ['1', '2', '3', '4'], ['!', '@', '#']]
list(product(*items))
# [('a', '1', '!'), ('a', '1', '@'), ('a', '1', '#'), ('a', '2', '!'), ('a', '2', '@'), ('a', '2', '#'), ('a', '3', '!'), ('a', '3', '@'), ('a', '3', '#'), ('a', '4', '!'), ('a', '4', '@'), ('a', '4', '#'), ('b', '1', '!'), ('b', '1', '@'), ('b', '1', '#'), ('b', '2', '!'), ('b', '2', '@'), ('b', '2', '#'), ('b', '3', '!'), ('b', '3', '@'), ('b', '3', '#'), ('b', '4', '!'), ('b', '4', '@'), ('b', '4', '#'), ('c,', '1', '!'), ('c,', '1', '@'), ('c,', '1', '#'), ('c,', '2', '!'), ('c,', '2', '@'), ('c,', '2', '#'), ('c,', '3', '!'), ('c,', '3', '@'), ('c,', '3', '#'), ('c,', '4', '!'), ('c,', '4', '@'), ('c,', '4', '#')]

๐Ÿ”ฅ permutations

๐Ÿ“ ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ์—์„œ ๋ชจ๋“  ์กฐํ•ฉ์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค๋ฉด, permuations๋ฅผ ์‚ฌ์šฉ

items = ['1', '2', '3', '4', '5']

from itertools import permutations
list(permutations(items, 2))
# [('1', '2'), ('1', '3'), ('1', '4'), ('1', '5'), ('2', '1'), ('2', '3'), ('2', '4'), ('2', '5'), ('3', '1'), ('3', '2'), ('3', '4'), ('3', '5'), ('4', '1'), ('4', '2'), ('4', '3'), ('4', '5'), ('5', '1'), ('5', '2'), ('5', '3'), ('5', '4')]

๐Ÿ”ฅ combinations

๐Ÿ“ ํ•˜๋‚˜์˜ ๋ฆฌ์ŠคํŠธ์—์„œ ๋ชจ๋“  ์กฐํ•ฉ์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค๋ฉด, combinations์„ ์‚ฌ์šฉ

items = ['1', '2', '3', '4', '5']

from itertools import combinations
list(combinations(items, 2))
# [('1', '2'), ('1', '3'), ('1', '4'), ('1', '5'), ('2', '3'), ('2', '4'), ('2', '5'), ('3', '4'), ('3', '5'), ('4', '5')]

0๊ฐœ์˜ ๋Œ“๊ธ€