파이썬 기초 1-3. 딕셔너리와 집합 자료형

MANBOKWAK·2024년 1월 10일

파이썬 기초

목록 보기
3/15

딕셔너리 자료형

딕셔너리란?

  • Key, Value를 한쌍으로 갖는 자료형

  • 리스트나 튜플 처럼 순차적으로 해당 요솟값을 구하지 않음

  • key를 통해 value를 얻음


딕셔너리 생성방법

  • {Key1 : Value1, Key2 : Value2, Key3 : Value3, ...} 형식으로 딕셔너리를 생성할 수 있음
# dictionary 생성 Example
dic = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
  • Key에는 정수 값 을 넣을수 있음

  • Value에는 문자열, 리스트 등을 사용할 수 있음


딕셔너리 쌍 추가 및 삭제

# 딕셔너리 쌍 추가 Example
a = {1 : 'a'}
a[2] = 'b' # 2 : 'b' 쌍 추가
print(a) # {1: 'a', 2: 'b'}
a['name'] = 'pey' # 'name' : 'pey' 쌍 추가
print(a) # {1: 'a', 2: 'b', 'name': 'pey'}
  • 위 와 같은 형식으로 딕셔너리에 쌍을 추가할 수 있음
# 딕셔너리 쌍 삭제 Example
a = {1: 'a', 2: 'b', 'name': 'pey'}
del a[1] 
print(a) # {2: 'b', 'name': 'pey'}
  • del함수를 이용해서 딕셔너리에서 쌍을 삭제할 수 있음

딕셔너리 Key로 Value얻기

# key로 value얻기 Example
grade = {'pey': 10, 'julliet': 99}
print(grade['pey']) # 10
print(grade['julliet']) # 99
  • 딕셔너리는 Key를 사용해 value값을 얻을 수 있음

딕셔너리 만들 때 주의사항

  • Key는 고유한 값이므로 중복되는 Key 값을 설정하면 안됨 -> 동일한 Key값이 두개면 1개는 무시됨

  • Key에는 리스트를 사용할 수 없음, BUT. 튜플은 Key로 사용할 수 있음


딕셔너리 관련 함수

keys 함수

  • Key를모아서 dict_keys객체로 반환해주는 함수
# keys함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a.keys()) # dict_keys(['name', 'phone', 'birth'])
  • dict_keys는 리스트를 사용하는것과 큰 차이가 없지만, 리스트 고유의 append, insert, pop, remove, sort함수등을 사용할 수 없음

values 함수

  • Value들을 dict_value함수로 반환해주는 함수
# values함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a.values()) # dict_values(['pey', '0119993323', '1118'])

items 함수

  • Key, Value의 쌍을 튜플로 묶은 값을 dict_item 객체로 돌려주는 함수
# items 함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a,a.items()) # dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])

clear 함수

  • 딕셔너리의 모든 요소를 삭제하는 함수

  • 실행하고나면 빈 딕셔너리만 남음

# clear 함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a.clear()) # None
  • 빈딕셔너리 {}로 표현됨

get 함수

  • Key로 Value를 얻을 수 있는 함수

  • get(x)형식으로 사용 x에 대응되는 value값을 반환해줌

  • get(x, '디폴트 값')x값이 키값중 없을 경우 정해 둔 디폴트 값을 대신 가져오게할 수 있음

# get 함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print(a.get('name')) # pey
print(a.get('phone')) # 0119993323

in

  • 해당 Key가 딕셔너리 안에 있는지 조사하는 기능을 수행
# in 함수 Example
a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
print('name' in a) # True
print('email' in a) # False
  • 존재하면 True를 반환 , 존재하지 않으면 False를 반환

집합 자료형

  • 수학에서 사용하는 집합과 동일

  • set키워드를 사용해 집합을 생성할 수 있음

# set 생성 Example
s1 = set([1,2,3])

print(s1)  # {1,2,3}

s2 = set("Hello")

print(s2) # {'e','H','l','o'}
  • Set는 중복을 허용하지 않음

  • 순서가 없음 -> 인덱싱을 통해 값을 얻을 수 없음

  • set의 요소에 인덱싱으로 접근하기 위해서는 리스트나 튜플로 변환 한후 접근할 수 있음

교집합/차집합/합집합 구하기

#Example
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])

#교집합
print(s1&s2) # {4,5,6}
s1.intersection(s2) # {4,5,6}

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

#차집합
print(s1 - s2) # {1,2,3}
s1.difference(s2) # {1,2,3}
print(s2 - s1) # {8,9,7}
s2.difference(s2) # {8,9,7}
  • 교집합은 &intersection함수를 사용해서 구할 수 있음

  • 합집합은 |union 함수를 사용해서 구할 수 있음

  • 차집합은 -difference함수를 사용해서 구할 수 있음


값 추가하기

  • 이미 만들어진 set에 값을 추가할 수 있음
s1 = ([1,2,3])
s1.add(4)
print(s1) # 1,2,3,4

  • add()함수를 사용해서 값을 추가할 수 있음

값 여러개 추가하기

s1 = ([1,2,3])
s1.update([4,5,6])
print(s1) # 1,2,3,4,5,6

  • update() 함수를 사용해서 값을 여러개 추가할 수 있음

특정 값 제거하기

s1 = ([1,2,3])
s1.remove(2)
print(s1) # 1,3
  • remove() 함수를 사용해서 특정값을 제거할 수 있음
profile
Backend/ DevOps를 지망하는 곽희상입니다.

0개의 댓글