본문 바로가기
프로그래밍/파이썬기초

파이썬 딕셔너리 - 리스트 안에 딕셔너리 예제

by 조크리 2023. 11. 8.
반응형

 

 

 

 

안녕하세요~!

지난 글에서는 딕셔너리와 리스트, 딕셔너리 안에 딕셔너리

등의 예제를 살펴보았습니다. 

 

파이썬 딕셔너리와 리스트 예제 : 리스트를 딕셔너리로, 딕셔너리 안에 딕셔너리

 

이번 글에서는

리스트 안에 딕셔너리 사용법을 살펴보겠습니다. 

 

 
 


목차

 

 

1. 리스트 안에 딕셔너리

 

처음 살펴볼 예제는 리스트 안에 딕셔너리 형태입니다. 

 

서울시 미세먼지 API에서도

가장 크게는 {} 딕셔너리가 있습니다. 

RealtimeCityAir 라는 key값과 value값이 있고

row라는 key 값과 value 값이 있습니다. 

 

이 row의 value는 리스트로 이루어져 있는데요.

리스트 안에는 또 딕셔너리가 있습니다. 

각각의 딕셔너리는 서울시의 '구'의 정보들을 담고 있습니다. 

 

 

좀 더 간단한 예제로 리스트 안에 딕셔너리의 형태를 살펴보죠!

 

 

challenge = [] 라는 리스트가 있습니다. 

이 리스트는 총 3개의 딕셔너리를 항목으로 가지고 있습니다. 

각 항목에는 인덱싱, 즉 순서가 있죠?

 

0번째 항목은 

{'name': '재석''age': 10입니다. 

 

1번째 항목은 

{'name': '명수''age': 12 입니다. 

 

2번째 항목은 

{'name': '준하''age': 14 입니다. 

 

이제 이 challenge = [] 라는 리스트를 출력시면각 항목이 순서대로 나올 겁니다. 

 

그리고 리스트에서 0번째 항목을 뽑으면재석에 대한 딕셔너리가 나오겠죠?

 

마지막으로 리스트의 0번째 항목의 'name' value값을 출력하면?재석이라는 이름이 나올겁니다. 

python
닫기
challenge = [ ​​​​{'name': '재석', ​​​​​'age': 10}, ​​​​{'name': '명수', ​​​​​'age': 12}, ​​​​{'name': '준하', ​​​​​'age': 14} ] print(challenge) print(challenge[0]) print(challenge[0]['name'])

 

 

2. 리스트 안에 새로운 딕셔너리 추가하기

 

그럼 challenge = [] 리스트 안에 새로운 딕셔너리를 하나 추가해보겠습니다. 

 

아래 코드처럼 

new_challenge = {} 라는 새로운 딕셔너리를 하나 만들어줍니다.

 

그리고 리스트에 항목을 추가하는 append()라는 함수를 써서

이 항목을 추가해줍니다. 

 

그럼 홍철과 관련한 새로운 딕셔너리가 추가된 것을 확인할 수 있습니다. 

 

새롭게 잘 항목이 들어갔는지 한 번 출력해보면

홍철이라는 이름도 잘 확인이 될겁니다. 

python
닫기
new_challenge = {'name': '홍철', 'age': 16} challenge.append(new_challenge) print(challenge) #리스트 안의 딕셔너리 값 확인 print(challenge[3]['name'])

 

 

3. 리스트 안의 딕셔너리에서 항목 찾기 

 

어느정도 리스트 속에 있는 딕셔너리 예제를 익혔으니

리스트 안의 딕셔너리에

어떤 항목이 있는지 없는지 판별하고, 그 항목들을 불러오는 예제를 살펴보겠습니다. 

 

우선 과일 이름과 좋아하는 학생 비율을 나타내는 리스트가 있습니다.

이 리스트에는 각각의 과일과 그 과일을 좋아하는 학생 비율이 딕셔너리로 들어가 있죠. 

 

 

 

이제 함수를 하나 만들어볼텐데요.

get_name('과일이름', 리스트이름) 이라는 함수입니다.

이 함수는 과일 이름과 리스트 이름을 적어주면

그 과일을 좋아하는 학생의 비율을 출력해줍니다.

 

만약 리스트에 없는 과일이라면

항목에 없는 과일이름이라고 안내도 해줍니다.

 

 

 

코드를 살펴보겠습니다. 

우선 get_name(name, list) 라는 함수가 중요하겠죠!

 

이 함수는 파라미터로 이름과 리스트를 받고 있습니다.

 

우선 리스트의 항목을 for반복문으로 쭉 돌아줍니다.

그리고 그 항목의 name값이 함수 호출시 적어준 값과 같다면

항목의 %값을 불러옵니다. 

만약 그 항목의 name값이 함수 호출 시 적어준 값과 다르다면

항목에 없는 과일 이름이라고 리턴합니다. 

 

get_name('바나나', fruit_list)를 예시로 보죠.

 

우선 fruit_list리스트의 각각의 항목들을 for반복문으로 쭉 돌아줍니다.

0번째 항목에서 name값은 '바나나'죠.

사용자가 함수 호출시 적어준 값도 바나나입니다.

 

이 둘이 같기 때문에

0번째 항목의 % 값인 13을 불러옵니다.

그리고 13%의 학생들이 좋아합니다. 라는 리턴값이 나오게 됩니다.

 

배라는 과일은 이 리스트에 없기에

항목에 없는 과일 이름입니다. 라는 문구가 리턴됩니다. 

python
닫기
fruit_list = [ ​​​​{'name': '바나나', '%': 13}, ​​​​{'name': '딸기', '%': 20}, ​​​​{'name': '수박', '%': 30}, ​​​​{'name': '오렌지', '%': 35} ] #함수 만들기 def get_name(name, list): ​​for fruit in list: ​​​​if fruit['name'] == name: ​​​​​​return str(fruit['%']) + '%의 학생들이 좋아합니다.' ​​​​return '항목에 없는 과일 이름입니다.' print(get_name('바나나', fruit_list)) print(get_name('배', fruit_list))

 

 

리스트와 딕셔너리가 함께 사용되는 예제들은

꽤 난이도가 높기 때문에

여러 번 코드를 작성해보고 다양한 예제를 실습해보는 것이 중요합니다. 

 

다음 글에서도

이와 비슷한 2개의 예제를 다시 실습해보겠습니다!

 

반응형