728x90
반응형

프로그램에는 자료형이라는 것이 있습니다. 숫자, 문자열 등 자료의 형태로 사용하는 것을 이야기합니다. 이것은 프로그램의 기본이자 핵심입니다. 자료형을 알지 못하면 프로그램을 짤 수 없으며, 각 언어마다 비슷하지만 조금씩 다른 방식으로 연산을 합니다. 이러한 자료형에 대해 알아보겠습니다.

 

딕셔너리 자료형

파이썬의 딕셔너리 형은 Java의 Hash와 같습니다. key에 저장된 value를 한쌍으로 가지는 형태를 이야기합니다. 예를 들어, 저에 대해서 생각을 할때, "이름(key)"= "티파일러(value)", "나이(key)"="40(value)",... 와 같이 나타낼수 있도록 구현된 것이 딕셔너리 입니다. 구하고자 하는 Key를 입력하면 value를 알수 있습니다.

 

딕셔너리의 생성

{key1:value1, key2:value2, key3:value3 ....}

Key와 Value 의 쌍 여러개가 {}로 둘러싸여 있습니다. 그리고 쉼표(,)로 구분이 되어 있습니다. value에는 리스트도 넣을 수 있습니다.

 

딕셔너리 쌍 추가, 삭제

딕셔너리를 이용하여 추가, 삭제하는 방법은 다음과 같습니다. 문자형, 리스트, 튜플과 다르게 [] 안에 있는 값은 index가 아닌 key 입니다.

[코드]

a = {1:'a', 2:'b',3:'c'}
print("a:",a)
a[4] = 'd'
print("a[4] = 'd' 실행후:",a)
a['x'] = 123
print("a['x'] = 123 실행후:",a)

del a[3]
print("del a[3] 실행후:",a)

[출력]

a: {1: 'a', 2: 'b', 3: 'c'}
a[4] = 'd' 실행후: {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
a['x'] = 123 실행후: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 'x': 123}
del a[3] 실행후: {1: 'a', 2: 'b', 4: 'd', 'x': 123}

딕셔너리 주의사항

딘겨너리에서 Key는 고유한 값으로 중복되는 Key값을 설정해 놓으면 나중에 입력한 값만 가지게 됩니다. 그리고 Key에 리스트는 사용할 수 없습니다. 

 

딕셔너리 함수

딕셔너리 관련 함수를 아래와 같이 살펴봅시다.

[코드]

a = {'name': '티파일러', 'phone': '010XXXXYYYY', 'birth': '0709'}
print("a의 key:",a.keys()) #dict_keys 객체로 반환됨

print("반복문 for를 이용한 key 값 출력")
for k in a.keys():
    print(k)

print("리스트로 key반환하기:",list(a.keys()))

print()
print("a의 value:",a.values()) #dict_values 객체로 반환됨

print()
print("a의 item:",a.items()) #dict_items 객체로 반환됨

print()
print("get 함수를 이용한 value얻기:", a.get("name"))
print("get 함수를 이용한 value얻기:", a.get("abc")) # key가 없으면 None
print("get 함수를 이용한 value얻기(없으면 디폴값으로 출력):", a.get("abc","12345"))

print()
print("'name'키가 있는지 조회:", 'name' in a)
print("'x'키가 있는지 조회:", 'x' in a)

print()
a.clear()
print("a 내용을 모두 지운 후:", a.items())

[출력]

a의 key: dict_keys(['name', 'phone', 'birth'])
반복문 for를 이용한 key 값 출력
name
phone
birth
리스트로 key반환하기: ['name', 'phone', 'birth']

a의 value: dict_values(['티파일러', '010XXXXYYYY', '0709'])

a의 item: dict_items([('name', '티파일러'), ('phone', '010XXXXYYYY'), ('birth', '0709')])

get 함수를 이용한 value얻기: 티파일러
get 함수를 이용한 value얻기: None
get 함수를 이용한 value얻기(없으면 디폴값으로 출력): 12345

'name'키가 있는지 조회: True
'x'키가 있는지 조회: False

a 내용을 모두 지운 후: dict_items([])

728x90
반응형

+ Recent posts