본문 바로가기

교육 노트/파이썬 강의

[파이썬 때려잡기] Python 강의 8 - 딕셔너리 (Dictionary)

2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 1 - Hello World!

2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 2 - 변수와 자료형, 연산자

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 3 - 파이썬의 자료구조, 리스트 (list)

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 4 - 파이썬의 스트링 (string)

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 5 - 스트링과 리스트 처리-1

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 6 - 스트링과 리스트 처리-2

2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 7 - 튜플 (tuple)

딕셔너리는 리스트와 튜플과 달리

키-벨류 쌍을 하나의 요소로 가진다.

예를 들어 학생의경우

이름,학번,성적 ... 등등 에 맞는 값을 가지고 있다

이름:철수

학번:2018333333

성적:3.0

이런 key-value의 연관관계를 표현하기위한 자료형이 딕셔너리 (사전) 이다


1. 딕셔너리

student = {'name':"철수",'id':"2018333333",'grade':3.0}

print (student)

print(student['name'])
print(student['id'])
print(student['grade'])


{'name': '철수', 'id': '2018333333', 'grade': 3.0}
철수
2018333333
3.0

{} 속에 키:벨류 식으로 만들며

key를 통하여 인덱싱한다.

여기서 key를 통하여 딕셔너리 요소를 찾기 때문에 key는 한 딕셔너리 안에 유일해야한다

리스트는 key가 0,1,2,3 ... 순인 딕셔너리와 유사하다.


key는 문자열이 아니라 숫자여도 된다

x = {0:1,1:2,2:3}
y = [1,2,3]

print (x)
print (y)
print (x[0])
print (y[0])


{0: 1, 1: 2, 2: 3}
[1, 2, 3]
1
1



2. 데이터 다루기

딕셔너리는 인덱싱으로 접근 가능하지만

요소를 변경하거나 추가하는것도 가능하다

student = {'name':"철수",'id':"2018333333",'grade':3.0}
print (student)

student['age'] = 23 #데이터 추가
print(student)

student['id'] = 2011213513 #데이터 편집
print(student)

del student['grade'] #데이터 삭제
print (student)


{'name': '철수', 'id': '2018333333', 'grade': 3.0}
{'name': '철수', 'id': '2018333333', 'grade': 3.0, 'age': 23}
{'name': '철수', 'id': 2011213513, 'grade': 3.0, 'age': 23}
{'name': '철수', 'id': 2011213513, 'age': 23}


del은 요소를 삭제하는 명령어이다. 

list에서도 사용가능하다.



3. 딕셔너리 다루기

student = {'name':"철수",'id':"2018333333",'grade':3.0}
print (student.keys())
print (student.values())
print (student.items())


dict_keys(['name', 'id', 'grade'])
dict_values(['철수', '2018333333', 3.0])
dict_items([('name', '철수'), ('id', '2018333333'), ('grade', 3.0)])


keys,values,items 는 각각 키, 벨류 키-벨류쌍(튜플)을 요소로 가지는 리스트 (정확히는 리스트 비스무리한것)을 돌려준다/

리스트내 함수를 사용하고 싶으면

list(student.keys())

로 list()로 묶으면 완전한 리스트로 사용가능하다.



student = {'name':"철수",'id':"2018333333",'grade':3.0}

print ("name" in student)
print ("age" in student)

print (student.get("name"))
print (student.get("age"))


True
False
철수
None


in키워드를 통하여

해당 리스트에 해당 키가 존재하는지 여부를 확인할수 있다.

있으면 True 없으면 False를 반환한다


get함수를 통하여 요소를 가져올수있다

없으면 None(암것도 없음) 을 반환한다.

요소가 있는경우 student[인덱스] 와 똑같이 작동하나 없는 경우 [인덱스] 접근은 오류를 발생시킨다,


 

728x90