deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim
Programming language/Python

[python] ์ง‘ํ•ฉ ์ž๋ฃŒํ˜• set()

[python] ์ง‘ํ•ฉ ์ž๋ฃŒํ˜• set()
Programming language/Python

[python] ์ง‘ํ•ฉ ์ž๋ฃŒํ˜• set()

2020. 9. 8. 20:41
๋ฐ˜์‘ํ˜•

๐Ÿ“— ์ง‘ํ•ฉ 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
  • ๐Ÿ“— ์ง‘ํ•ฉ set()
  • ๐Ÿ”ต ๊ต์ง‘ํ•ฉ, ํ•ฉ์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ 
  • ๐ŸŸข ์„ ์–ธ set
  • ๐ŸŸข ์ถ”๊ฐ€ (์›์†Œ ํ•œ๊ฐœ ์ถ”๊ฐ€) add
  • ๐ŸŸข ์ถ”๊ฐ€ (์›์†Œ ์—ฌ๋Ÿฌ๊ฐœ ์ถ”๊ฐ€) update
  • ๐ŸŸข ์‚ญ์ œ remove
  • ๐ŸŸข ์‚ญ์ œ2 discard
  • ๐ŸŸข ์‚ญ์ œ์™€ ๋ฝ‘๊ธฐ pop
  • ๐ŸŸข ๋น„์šฐ๊ธฐ clear
  • ๐ŸŸข ํ•ฉ์น˜๊ธฐ union
  • ๐ŸŸข ํ•ฉ์น˜๊ธฐ2 update
'Programming language/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [python] 'input.txt'๋กœ input ๋ฐ›๊ธฐ ( feat.sys )
  • [python] F-String
  • [python] filter
  • [python] accumulate(itertools), ๋ˆ„์  ํ•ฉ
deo2kim
deo2kim
์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.