set (집합)

Hyun·2023년 6월 22일
0

파이썬

목록 보기
10/17
post-thumbnail

set

  • 수학에서의 집합과 의미가 유사하다.
  • 중괄호를 사용하며 딕셔너리와 형태가 유사하지만 key 가 없고 value 만 존재한다.
  • 순서가 없기 때문에 for문으로 요소를 출력시 순서를 보장할 수 없다. 순서가 없다고 생각하자.
arr = {"a","b","b","c","d","d","e"}
for c in arr:
  print(c) # b c a e d
  • 집합 내의 각 값은 uniqe하다. 집합 내 값에 중복된 값을 넣어도 unique한 값이 되도록 나머지 중복된 값들을 제거해줌
arr = {"a","b","b","c","d","d","e"}
print(arr) # {'b', 'c', 'a', 'e', 'd'}

방법:

  • 집합이름 = {val1, val2, ..., valn} : 중복을 제거하여 집합이 되게함
  • set(iterable객체) : iterable객체에서 중복을 제거하여 집합을 생성해 반환
arr = [1,1,2,3,4,4,5,6,6,6,7]

set1 = set(arr)
print(set1) # {1, 2, 3, 4, 5, 6, 7}

set2 = set([1,1,2,3,4,4,5,6,6,6,7])
print(set2) # {1, 2, 3, 4, 5, 6, 7}

str ="aabbbccddeee"
set3 = set(str)
print(set3) # {'b', 'a', 'd', 'c', 'e'}

remove

방법: 집합이름.remove(item): item에 해당 하는 값을 제거하고, 없으면 keyError 를 발생시킴

ex)

s = {"a","b","c","d","e"}
s.remove("f")
# ----KeyError 발생----
# Traceback (most recent call last):
#  File "main.py", line 2, in <module>
#    s.remove("f")
# KeyError: 'f'

s.remove("e")
print(s) # {'b', 'c', 'a', 'd'}, 순서 X

discard

방법: 집합이름.remove(item): item에 해당하는 값을 제거하고, 없어도 에러를 발생시키지 않음

ex)

s = {"a","b","c","d","e"}
s.discard("f") # 값 없어도 에러 X
print(s) # {'b', 'c', 'a', 'e', 'd'}

s.discard("d")
print(s) # {'b', 'c', 'a', 'e'}
profile
better than yesterday

0개의 댓글