TIL #7 Dictionary & Set

tycode·2021년 6월 13일
0

TIL

목록 보기
7/30

Dictionary

my_dic = {"key1" : "value1", "key2" : "value2"}
  • 중광홀 { } 를 사용해 dictionary를 선언한다.
  • key & value의 값으로 이루어져있다.
  • 각각의 key:value들은 , (comma)로 구분한다.

요소(element) 읽어 들이기

dictionary에서 element를 읽어 들이는 방법은 list와 유사하다.
다만 index를 사용하는 것이 아니라 key값을 사용한다는 점이다.

예를 들어,

my_dic["key1"]
또는
print(my_dic["key1"])
  • key는 string뿐만이 아니라 숫자도 가능하다.
  • key 값은 중복될 수 없다.
  • 만일 존재하는 key 값이 또 추가되면 기존의 key값의 요소를 치환(replace)하게 된다. 호출 시에 나중에 추가된 key값을 호출한다.

요소 추가 및 수정

list와 유사하지만 index가 아니라 key 값을 사용한다.

dictionary_name[new_key] = new_value

dic = {1: "one", 2 : "two"}
dic[3] = "three"
dic[1] = "first"

print(my_dic)
> {1 : "first", 2 : "two", 3 : "three"}

요소 삭제

list와 유사하지만 index가 아니라 key 값을 사용한다.

dic = {1: "one", 2 : "two", 3 : "three"}
del my_dic[3]

print(my_dic)
> {1 : "first", 2 : "two"}

Set

list와 마찬가지로 여러 다양한 타입의 요소(element)들을 저장할 수 있다.

  • list와 다르게 요소들이 순서대로 저장되어 있지 않다. 그러므로 for 문에서 읽어들일 때 요소들이 무작위 순서대로 나온다.
  • 순서가 없으므로 indexing이 없다. 몇 번째 요소를 읽어 들이라고 할 수 없다.
  • 중복된 값을 저장할 수 없다. 만일 새로 저장하려고 하는 요소와 동일한 값의 요소가 존재한다면 새로운 요소가 이전 요소를 치환한다.

생성하는 법

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

set() 함수를 사용해서 set를 만들기 위해서는 list를 parameter로 전달해야 한다.

그러므로 일반적으로 set()함수를 사용해서 set를 만드는 경우는 list를 set로 변환하고 싶을 때 사용한다.

set1 = {1, 2, 3, 1}

print(set1)
> {"Hello"}


set2 = set([4, 5, 6, 7])

print(set2)
> {'e', 'H', 'l', 'o'}

요소 추가

list에서는 append() 함수를 사용하지만 set는 요소들이 순차적으로 저장되지 않기 때문에 add()를 사용한다.

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

print(my_set)
> {1, 2, 3, 4}

요소 삭제

remove 함수를 사용한다.

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

print(my_set)
> {1, 2, 3}

Look up

set에 어떠하나 값이 포함되어 있는지 알아보는 것.
set에서 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 no in my_set:
    print("4 is no in the set")
> 4 is not in the set

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

교집합은 & 키워드 혹은 intersection() 함수를 사용한다.

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

print(set1 & set2)
> {4, 5}

print(set1.intersection(set2))
> {4, 5}

합집합은 | 키워드 혹은 union 함수를 사용한다.

print(set1 | set2)
> {1, 2, 3, 4, 5, 6, 7, 8}

print(set1.union(set2))
> {1, 2, 3, 4, 5, 6, 7, 8}

비교

공통점
  • 중복이 불가능하다.
  • 순서가 없으므로 search 속도가 빠르다.
차이점
  • dictionary는 key와 value로 한 쌍으로 이루어져있다.
  • set는 value만 존재한다.

0개의 댓글