TIL15 | Python Set과 Dictionary

2021. 10. 11. 10:42언어/Python

반응형

Set

  • list의 친척느낌
  • list와 다르게 요소들이 순서대로 저장되어 있지 않다. (Ordering 이 없다)
    • for문에서 읽어들일 때 요소들이 무작위로 나온다.
    • 순서가 없으므로 indexing도 없다. 몇번째 요소를 읽어들일 수 없다.
  • 중복된 값을 저장할 수 없다.
    • 만일 동일한 요소를 저장하려 한다면 이전 요소를 치환(replace)한다.

Set 생성

중괄호 { } 를 사용하는 방법과 set()함수를 사용하는 방법이 있다.

set1 = {1, 2, 3}
set2 = set([1, 2, 3])

Set 요소 추가

add() 함수를 사용해서 새로운 요소를 추가한다.

my_set = {1, 2, 3}
my_set.add(4)
print(my_set)

> {1, 2, 3, 4}

Set 요소 삭제

remove() 함수를 사용해서 삭제한다.

my_set = {1, 2, 3}
my_set.remove(3)
print(my_set)

> {1, 2}

Set 요소 찾기(look up)

set에 어떠한 값이 이미 포함되어 있는지를 알아보는 것을 look up이라고 한다.

look up을 하기 위해서는 in 키워드를 사용한다.

my_set = {1, 2, 3}

if 1 in my_set:
    print("1 is in the set")
> 1 is in the set

if 4 not in my_set:
    print("4 is not in the set")
> 4 is not in the set

Set 교집합(Intersection) & 합집합(Union)

set은 교집합과 합집합을 구할 때도 사용될 수 있다.

  • 교집합은 & 키워드 또는 intersection() 함수를 사용한다.
  • 합집합은 | 키워드 또는 union() 함수를 사용한다.
set1 = {1, 2, 3, 4, 5, 6}
set2 = {4, 5, 6, 7, 8, 9}

# 교집합
print(set1 & set2)
print(set1.intersection(set2))
> {4, 5, 6}

# 합집합
print(set1 | set2)
print(set1.union(set2))
> {1, 2, 3, 4, 5, 6, 7, 8, 9}

 

Dictionary

  • 키(key)와 값(Value)의 쌍을 데이터로 가지는 자료형이다.
    • key 값은 string뿐만 아니라 숫자도 가능하다.
    • key 값은 중복될 수 없다.
    • 이미 존재하는 key값이 또 추가되면 기존의 key값의 요소를 치환(replace)한다
my_dic = { "key1" : "value1", "key2" : "value2"}

Dictionary 요소 읽기

key값을 사용해서 element를 읽을 수 있다.

my_dic['key1'] 

Dictionary 요소 추가

dictionary_name[new_key] = new_value

# 예시
my_dic['key3'] = 'value3'

Dictionary 요소 수정

key 값을 사용해서 요소를 수정한다.

my_dic['key1'] = 'new value'

print(my_dic)
> { "key1" : "new value", "key2" : "value2"}

Dictionary 요소 삭제

key값을 사용해서 요소를 삭제한다.

del my_dic['key1']

print(my_dic)
> {"key2" : "value2"}

 

Set 과 Dictionary의 차이

  • setkey값만 존재하지만, dictionarykeyvaule 값이 존재한다.

  • set은 수정 가능한 mutable(가변성) 리스트

  • dictionarykey값은 immutable(불변성) 형식이고 value값은 mutable(가변성) 형식도 가능하다.

공통점

  • set은 순서가 없는 중복 불가한 collection 자료형이다.
  • dictionary를 구현한 클래스가 set이므로 dictionary 또한 중복이 불가능한 collection 자료형이다.
반응형