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

λ§žμ™œν‹€

[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
    'Programming language/Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [python] 'input.txt'둜 input λ°›κΈ° ( feat.sys )
    • [python] F-String
    • [python] filter
    • [python] accumulate(itertools), λˆ„μ  ν•©
    deo2kim
    deo2kim
    μ½”λ”© κΈ°λ‘ν•˜κΈ°

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”