๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ

4.4.5. ์…‹

1. Set

์ง‘ํ•ฉ ์ž๋ฃŒํ˜•์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ˆœ์„œ๊ฐ€ ์—†๋Š” ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค.
์ž…๋ ฅ
number_set = set([1, 1, 2, 2, 3, 3, 4]) print(number_set)
์ถœ๋ ฅ
{1, 2, 3, 4}
ย 
์œ„์˜ ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด ๊ฐ™์€ ์ˆซ์ž๋“ค์€ ๋‹ค ์ œ๊ฑฐ๋˜๊ณ  ํ•˜๋‚˜๋งŒ ๋‚จ์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž…๋ ฅ
number_set = set('apple coffee') print(number_set)
ย 
์ถœ๋ ฅ
{'o', 'e', 'c', ' ', 'l', 'f', 'p', 'a'}
ย 
๋ฌธ์ž์—ด์„ ๋„ฃ์—ˆ์„ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ˆœ์„œ๊ฐ€ ๊ณ„์† ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.1 add

์ง‘ํ•ฉ ์ž๋ฃŒํ˜•์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” add๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
menu = set(['americano', 'cafe latte']) menu.add('ice coffee') print(menu)
ย 
์ถœ๋ ฅ
{'cafe latte', 'ice coffee', 'americano'}
ย 

1.2 update

๊ฐ’์„ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ์—๋Š” update๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
menu = set(['americano', 'cafe latte']) menu.update(['ice coffee', 'ice tea', 'green tea']) print(menu)
ย 
์ถœ๋ ฅ
{'ice coffee', 'green tea', 'americano', 'ice tea', 'cafe latte'}
ย 

1.3 remove

ํŠน์ • ๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” remove๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
menu = set(['americano', 'cafe latte']) menu.remove('cafe latte') print(menu)
ย 
์ถœ๋ ฅ
{'americano'}
ย 

1.4 discard

remove์ฒ˜๋Ÿผ ํŠน์ • ๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ธ discard๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž…๋ ฅ
s = {2, 3, 4, 5, 6} s.discard(1)
ย 
์ถœ๋ ฅ
{2, 3, 4, 5, 6}
discard๋Š” ์ง€์šฐ๋ ค๋Š” ๊ฐ’์ด ์—†์œผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉฐ, remove๋Š” ์˜ค๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํ•จ์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์ฃผ์„ธ์š”.
ย 

1.5 pop

๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์ง€์šฐ๊ณ  ์‹ถ์„ ๋•Œ pop์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
s = {3, 4, 5, 6, 7, 8} s.pop() s s.pop s s.pop s
ย 
์ถœ๋ ฅ
{3, 4, 5, 6, 7, 8} {4, 5, 6, 7, 8} {5, 6, 7, 8}
ย 

1.6 ๊ต์ง‘ํ•ฉ

์ง‘ํ•ฉ ์ž๋ฃŒํ˜•์€ ์ง‘ํ•ฉ์ด๋ผ๋Š” ์ด๋ฆ„์— ๋งž๊ฒŒ ๊ต์ง‘ํ•ฉ, ํ•ฉ์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย 
๊ต์ง‘ํ•ฉ์€ & ํ˜น์€ intersection ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
my_cafe = set(['americano', 'water', 'yogurt strawberry blended', 'cafe latte']) other_cafe = set(['americano', 'water', 'green tea']) print(my_cafe & other_cafe) print(my_cafe.intersection(other_cafe))
ย 
์ถœ๋ ฅ
{'water', 'americano'} {'water', 'americano'}
ย 

1.7 ํ•ฉ์ง‘ํ•ฉ

ํ•ฉ์ง‘ํ•ฉ์€ | ๋˜๋Š” union ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
my_cafe = set(['americano', 'water', 'yogurt strawberry blended', 'cafe latte']) other_cafe = set(['americano', 'water', 'green tea']) print(my_cafe | other_cafe) print(my_cafe.union(other_cafe))
ย 
์ถœ๋ ฅ
{'americano', 'green tea', 'cafe latte', 'yogurt strawberry blended', 'water'} {'americano', 'green tea', 'cafe latte', 'yogurt strawberry blended', 'water'}
ย 

1.8 ์ฐจ์ง‘ํ•ฉ

์ฐจ์ง‘ํ•ฉ์€ - ๋˜๋Š” difference ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
my_cafe = set(['americano', 'water', 'yogurt strawberry blended', 'cafe latte']) other_cafe = set(['americano', 'water', 'green tea']) print(my_cafe - other_cafe) print(my_cafe.difference(other_cafe))
ย 
์ถœ๋ ฅ
{'yogurt strawberry blended', 'cafe latte'} {'yogurt strawberry blended', 'cafe latte'}
ย 

1.9 ๋Œ€์นญ์ฐจ์ง‘ํ•ฉ

๋‘ ๊ฐœ์˜ ์ง‘ํ•ฉ์ด ์žˆ์„ ๋•Œ ๊ณตํ†ต๋œ ๋ถ€๋ถ„์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๋Œ€์นญ์ฐจ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•˜๋ฉฐ,
^ ๋˜๋Š” symmetric_difference ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
s = {1, 2, 3, 4} ss = {3, 4, 5, 6} s^ss set.symmetric_difference(s, ss)
ย 
์ถœ๋ ฅ
{1, 2, 5, 6} {1, 2, 5, 6}
ย 

1.10 issubset

์ƒˆ๋กœ์šด ๊ฐ’์— ์›๋ž˜์˜ ๊ฐ’์ด ์†ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” issubset ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
s = {1, 2, 3, 4} ss = {3, 4, 5, 6} s.issubset({1, 2}) s.issubset({1, 2, 3, 4, 5, 6}) s < {1, 2, 3, 4, 5, 6} #์ง„๋ถ€๋ถ„์ง‘ํ•ฉ(<->์ง„์ƒ์œ„์ง‘ํ•ฉ) s <= {1, 2, 3, 4, 5, 6} #๋ถ€๋ถ„์ง‘ํ•ฉ(<->์ƒ์œ„์ง‘ํ•ฉ)
ย 
์ถœ๋ ฅ
False True True True
ย 

1.11 isdisjoint

๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋กœ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” isdisjoint ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
s = {1, 2, 3, 4} ss = {3, 4, 5, 6} s.isdisjoint(ss)
ย 
์ถœ๋ ฅ
False #๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด False, ์—†์œผ๋ฉด True๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
ย 
์ž…๋ ฅ
s = {1, 2} ss = {3, 4} s.isdisjoint(ss) 1 in s len(s) #s์˜ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
ย 
์ถœ๋ ฅ
True True 2s, ss
ย 

1.12 Symmetric_difference_update

์ง€๊ธˆ ์…‹๊ณผ ๋น„๊ตํ•  ๋‹ค๋ฅธ ์…‹๋“ค ์ค‘์—์„œ ๊ฒน์น˜์ง€ ์•Š๋Š” ์š”์†Œ๋งŒ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ symmetric_difference_updateํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ
s = {1, 2, 3} ss = {3, 4, 5} s.symmetric_difference_update(ss) s
ย 
์ถœ๋ ฅ
{1, 2, 4, 5} #๊ฒน์น˜๋Š” ์š”์†Œ์ธ 3์€ ์ œ์™ธ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.