
오늘은 Python의 자료형 중 딕셔너리(dictionary), 집합(set)에 대해 알아봅니다. 딕셔너리는 리스트나 튜플처럼 순차적으로 해당 value를 구하지 않고 Key를 통해 value를 얻는 게 특징입니다. 예를 들면 { key1:value1, key2:value2, key3:value3 }와 같이 key:value가 { }에 둘러싸여 key에는 상수, value에는 변수 또는 상수가 들어갑니다.
>>> dic = { 'name' : 'baik', 'phone' : 0174343212, 'birth' : 0814 }
|
|
Key
|
Value
|
name
|
baik
|
phone
|
0174343212
|
birth
|
0814
|
딕셔너리에서는 key를 정수값으로, Value는 문자나 리스트도 넣을 수 있습니다.
>>> a = { 1 : ‘hi’, 2: [1,2,3] }
딕셔너리에서 쌍을 추가, 삭제하는 방법은 아래와 같습니다.

딕셔너리 key를 이용하여 쌍을 추가하거나 삭제 가능한 것을 볼 수 있습니다. 다른 언어에서 파이썬의 딕셔너리 자료형을 구현하려면 배열, 조건문, 반복문을 모두 사용해야는데, 파이썬은 상당히 직관적입니다.


딕셔너리 함수에 대해 알아봅니다.
keys()
|
a.keys()는 딕셔너리 a의 key를 모아서 disc_keys로 반환
|
>>> a = {'name' : 'baik', 'phone' : '017-434-3212', 'birth' : '0814' }
>>> a.keys() dict_keys(['name', 'phone', 'birth']) |
values()
|
a.values()는 딕셔너리 a의 value를 모아서 disc_values로 반환
|
>>> a.values()
dict_values(['baik', '017-434-3212', '0814']) |
items()
|
a.items()는 딕셔너리 a의 key, value를 튜플로 묶어 모아서 disc_items로 반환
|
>>> a.items()
dict_items([('name' , 'baik'), ('phone' , '017-434-3212'), ('birth' , '0814')]) |
list(a.keys()), list(a.values()), list(a.items()) 와 같이 list() 함수를 사용하면 리스트 자료형으로 변환됩니다.
딕셔너리 내 Key:value를 모두 지울 때 clear() 함수를 사용합니다.
>>> a.clear()
>>> a
{}
Key로 value를 얻을 때 gat()를 사용할 수 있습니다. 하지만 get() 함수는 찾고자 하는 key가 없을 때 “none”을 반환하는 반면, a[‘nokey’]로 호출했을 때 찾고자 하는 key가 없다면 error를 발생합니다. Error 발생 시 처리 방법은 다를 수 있지만 분명 차이는 있겠죠? 딕셔너리 안에 찾으려는 key가 없을 때 get(x,’default value’) 형태로 디폴트 값을 임의 지정할 수 있습니다.
해당 key가 딕셔너리 안에 있는지 조사할 수도 있습니다.
>>> ‘xxxx’ in a
‘xxxx’가 a 딕셔너리 안에 있다면 True를 반환, 없다면 False를 반환! 합니다. 당연하고 직관적입니다. (Python의 장점이자 한편으로는 단점일 수도 있겠죠?! 이러한 이유로 타 프로그래밍 언어보다 느리게 실행되는 이유일 수도 있기 때문에... 지극히 제 뇌피셜입니다.)
리스트는 [ ], 튜플은 ( ), 딕셔너리는 { }처럼 괄호의 모양에 따라 전혀 다른 자료형을 나타내는 점 유의하세요~!
이번엔 집합(set)과 논리형(Boolean) 자료형에 대해 알아봅니다.
>>> s = set( [1, 2, 2, 3] )
>>> s
{1, 2, 3}
집합은 set ()을 이용하여 생성하며, 중복을 허용하지 않고, 순서도 없습니다. 그래서 index를 사용하려면 list( ) 함수를 사용해야 합니다.
>>> s1 = set ( [ 1, 2, 3, 4, 5 ] )
>>> s2 = set ( [ 4, 5, 6, 7, 8 ] ) |
||
교집합
( & or intersection() ) |
합집합
( | or union() ) |
차집합
( - or difference() ) |
>>> s1 & s2
{ 4, 5 } >>> s1.intersection(s2) { 4, 5 } |
>>> s1 | s2
{ 1, 2, 3, 4, 5, 6, 7, 8 } >>> s1.union(s2) { 1, 2, 3, 4, 5, 6, 7, 8 } |
>>> s1 - s2
{ 1, 2, 3 } >>> s1.difference(s2) { 1, 2, 3 } >>> s2 - s1 { 8, 6, 7 } >>> s2.difference(s1) { 8, 6, 7 } |
집합 자료형 관련 함수
>>> s1 = set([ 1, 2, 3 ])
|
||
값 1개 추가 : add( )
|
값 여러 개 추가 : update( )
|
특정 값 제거 : remove( )
|
>>> s1 = add(4)
>>> s1 {1, 2, 3, 4} |
>>> s1.update([ 4, 5, 6])
>>> s1 {1, 2, 3, 4, 5, 6} |
>>> s1. remove(2)
>>> s1 {1, 3} |
논리(bool) 자료형은 참(True)과 거짓(False) 단 2가지를 나타냅니다. (True, False는 파이썬의 예약어로 반드시 첫 문자는 대문자로 사용해야 합니다.)
>>> 1 == 1
True
>>> 2 > 1
True
>>> 2 < 1
False
단순하지만 조건문, 반복문에서 자주 사용되는 자료형입니다.
자료형에 있어 참과 거짓의 기준은 다음과 같습니다.
자료형
(Type) |
값
(Value) |
(참 / 거짓)
True / False |
문자열
|
"python'
|
참
|
""
|
거짓
|
|
리스트
|
[1, 2, 3]
|
참
|
[]
|
거짓
|
|
튜플
|
()
|
거짓
|
딕셔너리
|
{}
|
거짓
|
숫자
|
0이 아닌 숫자
|
참
|
0
|
거짓
|
|
Null
|
None
|
거짓
|
문자, 리스트, 튜플, 딕셔너리는 비어있으면 거짓이 된다는 사실을 기억해 둡니다. 쉽네요!^^
>>> bool(“python”)
True
>>>bool(“”)
False
간단히 bool( ) 연산자로 확인해 보시면 쉽게 이해할 수 있습니다. 파이썬을 띄우시고 직접 실행시켜 보시길 진심으로 권장합니다.
'코딩 이야기 > 파이썬(Python)' 카테고리의 다른 글
단도직입 파이썬(Python) – 조건문 (if ~ else) (0) | 2021.12.15 |
---|---|
단도직입 파이썬(Python) 기초 – 5 자료형(변수) (0) | 2021.12.15 |
단도직입 파이썬(Python) 기초 – 3 자료형(list, tuple) (0) | 2021.12.15 |
단도직입 파이썬(Python) 기초 – 2 자료형(숫자형, 문자형) (0) | 2021.12.15 |
단도직입 파이썬(Python) 기초 – 1 기초 문법 (0) | 2021.12.15 |
댓글