파이썬 프로그래밍 시작 (10) 자료구조(Data Structure) : 딕셔너리
많은 컴퓨터 프로그램은 알고리즘과 자료구조로 구성됩니다. 자료구조에 대해 알면 파이썬 초보자나 어린이 파이썬 프로그래머도 유용한 파이썬 프로그래밍을 할 수 있습니다. 리스트, 튜플, 딕셔너리라는 자료구조 중 세 번째로 딕셔너리에 대해 익숙해질 차례입니다. 이번 포스팅에서는 딕셔너리을 만드는 방법, 리스트나 튜플과의 차이점, 그리고 딕셔너리에서 키와 값을 추가하는 방법까지 배워보겠습니다.
글의 순서
파이썬 프로그래밍 시작하기 : replit
로그인
파이썬
자료구조 : 딕셔너리(Dictionary)
파이썬 프로그래밍 중 딕셔너리 사용법
딕셔너리에서 사용빈도가 높은 함수
딕셔너리 확장 방법
파이썬 프로그래밍 시작하기 : replit 로그인
리플(http://repl.it)에 로그인합니다.
로그인하고 난 후 보이는 화면의 중앙 상단에 ‘+new repl’ 버튼이 있습니다. 이 버튼을 클릭하면, ‘New repl’ 창이 뜨는데 여기서 프로그래밍 언어로 파이썬(Python)을 선택합니다. 파이썬 선택 후 ‘Creat Repl’ 을 클릭합니다.
이 과정을 거치면 지난 포스팅에서 보셨던 코딩 환경이 나타나는데, 역시나 3개의 창이 보입니다. 창의 배치는 달라질 수 있습니다만, 그 3개의 창은 각각 코드를 담고 있는 파일이름이 있는 창, 코드를 편집할 수 있는 창, 코드 실행결과를 확인할 수 있는 창(=터미널)으로 구성되어 있습니다.
파이썬 자료구조 : 딕셔너리(Dictionary)
파이썬 프로그래밍을 위한 자료구조 중 리스트, 튜플을 배웠고, 이번엔 딕셔너리
차례입니다. 딕셔너리는 키(key)를 기반으로 값을 저장하는 자료구조입니다.
리스트가 인덱스 기반으로 값을 저장하는 자료구조라는 것과 비교됩니다.
튜플(Tuple)도 리스트와 비슷합니다. 리스트나 튜플은 엘리먼트 여러 개를 묶어
놓은 것인데, 튜플이 리스트와 다른 점은 튜플에서는 엘리먼트의 값을 바꿀 수
없다는 것입니다.
딕셔너리를 만드는 법은 딕셔너리01 코드와 같습니다. 딕셔너리를 만드는 함수는 dict()이거나 {}입니다. 딕셔너리가 어떤 모습일지를 확인하는 데는 역시나 print라는 명령어가 제일 좋습니다. 딕셔너리01 코드의 출력결과는 x, y 모두 {}입니다. 리스트, 튜플과의 비교를 위해 리스트01, 튜플01 코드도 딕셔너리01 코드에 추가하였습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
print("딕셔너리") x = dict() y = {} print(x) print(y) print("리스트") x = list() y = [] print(x) print(y) print("튜플") x = tuple() y = () print(x) print(y) |
파이썬 프로그래밍 중 딕셔너리 사용법
딕셔너리는 열쇠(key)와 값(value)로 이루어져 있습니다. name이라는 키 안에 “현아’라는 값을 넣은 딕셔너리를 아래와 같이 작성할 수 있습니다. 각 키와 값이 짝을 이룹니다. 각각의 짝을 구분하는데는 콤마(,)를 사용합니다. 딕셔너리02 코드를 실행시키면 {‘name’: ‘현아’, ‘age’: ’20’}이 출력됩니다. 딕셔너리는 키를 기반으로 값을 저장하는 것이며, 값이 가리키는 위치는 키입니다. 이는 리스트나 튜플에서 값이 가리키는 위치인 자리번호(인덱스)와 비교됩니다.
1 2 3 4 5 6 |
x = { "name" : "현아", "age" : 20 } print(x) |
딕셔너리03 코드는 x라는 딕셔너리의 키인, name, age에 어떤 값들이 들어있는지를 보여줍니다. 각각 현아와 20이 출력됩니다. 여기서 주의해야 할 것은 딕셔너리를 선언할 때는 {}를 사용하는데, 키에 접근할 때는 []를 사용한다는 것입니다. 딕셔너리04에서도 []를 유심히 봐 주시기 바랍니다.
1 2 3 4 5 6 7 |
x = { "name" : "현아", "age" : 20 } print(x["name"]) print(x["age"]) |
1 2 3 4 5 6 7 8 9 |
x = { 0 : "현아", 1 : "안녕", "age" : 20 } print(x[0]) print(x[1]) print(x["age"]) |
리스트와 마찬가지로 딕셔너리 안에 어떤 키가 있는지 확인할 수 있습니다. 딕셔너리05는 딕셔너리 x에 age라는 키가 있는지를 물어보는 코드입니다. 키를 물어보는 딕셔너리05 코드의 실행결과로 True와 False가 순서대로 출력됩니다.
1 2 3 4 5 6 7 8 |
x = { 0 : "현아", 1 : "안녕", "age" : 20 } print("age" in x) print("name" in x) |
딕셔너리에서 사용빈도가 높은 함수
딕셔너리에 들어있는 모든 키와 각 키에 할당된 값을 알고 싶을 때는 딕셔너리06 코드에서처럼 keys()라는 함수와 values()라는 함수를 이용합니다. 코드를 실행하면 dict_keys([0, 1, ‘age’])라는 키와 dict_values([‘현아’, ‘안녕’, 20])라는 값을 출력합니다.
1 2 3 4 5 6 7 8 9 |
x = { 0 : "현아", 1 : "안녕", "age" : 20 } for key in x: print(x.keys()) print(x.values()) |
딕셔너리에서도 리스트와 마찬가지로 각 엘리먼트들을 쭉 돌아볼 수 있습니다. 딕셔너리07은 for 반복문을 사용하여 딕셔너리에 들어있는 키와 키에 해당하는 값을 확인하는 코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
x = { 0 : "현아", 1 : "안녕", "age" : 20 } for key in x: print(key) print(x[key]) # 딕셔너리07 실행결과 # 0 # 현아 # 1 # 안녕 # age # 20 |
코딩을 할 때는 코딩 결과를 중간 중간 확인하게 되는데, 이왕이면 확실하게 이해할 수 있도록 하는 것이 중요합니다. 가장 간단한 방법은 역시나 print를 활용하는 것인데, 프린트문을 잘 쓰면 코드 이해가 빠르고, 디버깅도 편합니다. 위의 코드를 좀 더 눈에 잘 들어오게 딕셔너리08 코드처럼 바꿀 수 있습니다. 복잡하고 긴 파이썬 프로그래밍을 하실 때 적용해보시기 바랍니다.
1 2 3 4 5 6 7 8 9 |
x = { 0 : "현아", 1 : "안녕", "age" : 20 } for key in x: print("key :" + str(key)) print("value :" + str(x[key])) |
딕셔너리에는 원래 있던 키의 값을 바꾸거나, 새로운 키를 추가할 수도 있습니다. 딕셔너리09코드는 0이라는 키에 들어있는 값을 “민서”로 바꾸는 것을 보여줍니다. 코드를 실행시켜보면 두 줄이 출력되는데, “현아”라는 값이 “민서”로 바뀐 것을 확인할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 |
x = { 0 : "현아", 1 : "안녕", "age" : 20 } print(x) x[0] = "민서" print(x) |
딕셔너리09 실행결과
{0: ‘현아’, 1: ‘안녕’, ‘age’: 20}
{0: ‘민서’, 1: ‘안녕’, ‘age’: 20}
딕셔너리 확장 방법
딕셔너리에는 새로운 키와 값을 추가하는 것도 가능합니다. 딕셔너리10은 새로운 키인 “school”과 값인 “미르”를 추가하는 코드입니다. 코드를 실행해보면 {0: ‘현아’, 1: ‘안녕’, ‘age’: 20}라는 딕셔너리가 {0: ‘현아’, 1: ‘안녕’, ‘age’: 20, ‘school’: ‘미르’}로 바뀌는 것을 확인할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 |
x = { 0 : "현아", 1 : "안녕", "age" : 20 } print(x) x["school"] = "미르" print(x) |
마치며 …
이번 포스팅에서는 파이썬 프로그래밍 기술을 한 차원 높일 수 있는 자료구조 중
딕셔너리을 만드는 방법, 리스트나 튜플과의 차이점, 그리고 딕셔너리에서 키와
값을 추가하는 방법까지 배웠습니다.
딕셔너리가 리스트나 튜플과 다른 점은 키(key) 기반의 자료구조라는 점입니다. 특히 딕셔너리에서 키와 값을 추가하는 방법을 이해하고 익숙해지는 것이 중요합니다. 다음 포스팅은 지금까지 배운 리스트, 딕셔너리를 이용해서 파이썬 코드를 만들어보겠습니다. 파이썬 코딩 초보자, 어린이 파이썬 프로그래머도 계속 관심을 가져주시길 바랍니다.
함께 참고하면 더 좋은 글 :
1. 파이썬 프로그래밍 시작하기 (1) 온라인 프로그래밍 환경 replit
2. 파이썬 프로그래밍 시작 (2) 변수, 타입, 문자열 실습
3. 파이썬 프로그래밍 시작 (3) 파이썬 함수 실습
4. 파이썬 프로그래밍 시작 (4) 조건문
5. 파이썬 프로그래밍 시작 (5) 연습문제 : 함수 만들기
6. 파이썬 데이터 분석! 데이터 분석을 위한 코딩언어 파이썬
7. 애플 실리콘 M1 시리즈 비교 : M1 Pro, M1 Max, M1 Ultra
참고자료
테크보이 워니(2020), 코딩 1시간만에 배우기 – 파이썬 (ft. 실리콘밸리 엔지니어)