
๐ ์งํฉ set()
set์ ๋ฆฌ์คํธ์ ๋น์ทํ๊ฒ ๋ณผ ์ ์๋ค. ํ์ง๋ง ์ธ๋ฑ์ค๋ก ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๊ณ , ์ ๋ ฌ๋ ํ ์ ์๋ค. for ๋ฌธ์ผ๋ก ํ๋ํ๋ ์ถ๋ ฅํด๋ด๋ ๊ทธ๋ ๊ทธ๋ ์์๊ฐ ๋ค์ฃฝ๋ฐ์ฃฝ์ผ๋ก ๋ค๋ฅด๊ฒ ๋์จ๋ค.
set ์ ์ฌ์ฉํ๋ ์ด์ ๋
- ์ค๋ณต์ด ์๋ค
- ํน์ ์์๊ฐ ์๋ ์ง ํ์ธํ ๋ O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. ( ๋ฆฌ์คํธ์ ๊ฒฝ์ฐ O(N) ) ex) if ์์ in ์ :
- ์งํฉ ๊ด๋ จ
๐ต ๊ต์งํฉ, ํฉ์งํฉ, ์ฐจ์งํฉ
๊ต์งํฉ: & or intersection
ํฉ์งํฉ: | or union
์ฐจ์งํฉ: - or difference
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
# ๊ต์งํฉ
print(set1.intersection(set2)) # {3, 4, 5}
print(set1 & set2) # {3, 4, 5}
# ํฉ์งํฉ
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 7}
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7}
# ์ฐจ์งํฉ
print(set1.difference(set2)) # {1, 2}
print(set1 - set2) # {1, 2}
๐ข ์ ์ธ set
set์ ์ ์ธํ ๋๋ ๋ณดํต
my_set = set()
# or
my_set = {"apple", "melon", "grape"}
print(my_set) # {'grape', 'melon', 'apple'}
๐บ ์์์ ์ถ๋ ฅํ ๊ฒ์ ๋ณด๋ฉด ์์๊ฐ ๋ค๋ฅด๊ฒ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๐ข ์ถ๊ฐ (์์ ํ๊ฐ ์ถ๊ฐ) add
my_set.add('orange')
print(my_set) # {'orange', 'grape', 'melon', 'apple'}
๐ข ์ถ๊ฐ (์์ ์ฌ๋ฌ๊ฐ ์ถ๊ฐ) update
my_set.update(["blueberry", "banana"])
print(my_set) # {'orange', 'apple', 'banana', 'grape', 'melon', 'blueberry'}
๐ข ์ญ์ remove
my_set.remove("apple")
print(my_set) # {'blueberry', 'orange', 'grape', 'banana', 'melon'}
!!! ํ์ง๋ง ์๋ ์์๋ฅผ ์ง์ฐ๋ ค๊ณ ํ๋ฉด KeyError ๋ฐ์
my_set.remove("dog")

๐ข ์ญ์ 2 discard
์๋ ์์๋ฅผ ์ง์ฐ๋ ค๊ณ ํด๋ ์๋ฌ๊ฐ ๋์ง ์๋๋ค.
my_set.discard("grape")
print(my_set) # {'blueberry', 'melon', 'banana', 'orange'}
my_set.discard("dog")
print(my_set) # {'blueberry', 'melon', 'banana', 'orange'}
๐บ remove๋ ์์๊ฐ ๊ผญ ์์ด์ผ ํ๊ณ , discard๋ ์์ด๋ ๋๋ค. (๊ทธ๋ผ discard๋ง ์ฐ๋ฉด ๋๋๊ฑฐ ์๋๊น? ๐๐ ์ ๋ชจ๋ฅด๊ฒ ๋ค)
๐ข ์ญ์ ์ ๋ฝ๊ธฐ pop
pop์ ์ฌ์ค ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ์๋ ์์๋ฅผ ๋ฝ์์ ๋ฐํํ๋ ํจ์์ด๋ค. ํ์ง๋ง set์ ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฐ์ด ๋์ฌ์ง ๋ชจ๋ฅธ๋ค. ๋๊ฐ์ set์์ ํ์ ์คํํ ๋๋ง๋ค ๋ค๋ฅธ ๊ฐ์ด ๋์จ๋ค.
# 1์ฐจ ์๋
print(my_set) # {'banana', 'blueberry', 'orange', 'melon'}
tmp = my_set.pop()
print(tmp) # banana
print(my_set) # {'blueberry', 'orange', 'melon'}
# 2์ฐจ ์๋
print(my_set) # {'blueberry', 'orange', 'banana', 'melon'}
tmp = my_set.pop()
print(tmp) # blueberry
print(my_set) # {'orange', 'banana', 'melon'}
๐บ ์์ธํ ๋ณด๋ฉด ๊ฐ์ฅ ์์ ์์๊ฐ ๋์จ ๊ฑฐ ๊ฐ๋ค. ํ์ง๋ง!!! set์ ์์๊ฐ ์์ผ๋ฏ๋ก ๋ชจ๋ ๊ฒ ๋๋ค์ด๋ค.
๐ข ๋น์ฐ๊ธฐ clear
set ์์ ๋ชจ๋ ์์๋ฅผ ์ง์ฐ๋ ๋ฉ์๋
my_set.clear()
print(my_set) # set()
๐ข ํฉ์น๊ธฐ union
๋๊ฐ์ set์ ํฉ์ณ์ ์๋ก์ด set์ ์์ฑ
your_set = {"tomato", "cherry", "lemon"}
print(my_set) # {'melon', 'orange', 'blueberry'}
print(your_set) # {'tomato', 'cherry', 'lemon'}
our_set = my_set.union(your_set)
print(our_set) # {'tomato', 'melon', 'orange', 'blueberry', 'cherry', 'lemon'}
๐ข ํฉ์น๊ธฐ2 update
์๊น ์์์ ๋ดค๋ ์ฌ๋ฌ๊ฐ์ ์์๋ฅผ ์ง์ด๋ฃ๋ ๊ธฐ๋ฅ๊ณผ ๊ฐ๋ค
์ฌ๋ฌ๊ฐ์ ์์ ๋์ ํ๋์ ๋ฆฌ์คํธ๋ ์ ์ ์ง์ด ๋ฃ๋๋ค.
new_set = {"ddalgi"}
list1 = ['sagwa', 'podo']
new_set.update(list1)
print(new_set) # {'podo', 'ddalgi', 'sagwa'}
set1 = {"bae", "subak"}
new_set.update(set1)
print(new_set) # {'podo', 'ddalgi', 'sagwa', 'subak', 'bae'}
'Programming language > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] 'input.txt'๋ก input ๋ฐ๊ธฐ ( feat.sys ) (0) | 2020.09.07 |
---|---|
[python] F-String (0) | 2020.09.06 |
[python] filter (2) | 2020.08.31 |
[python] accumulate(itertools), ๋์ ํฉ (0) | 2020.08.30 |
[python] defaultdict (0) | 2020.08.29 |