안녕하세요~!
지난 글에서는 딕셔너리와 리스트, 딕셔너리 안에 딕셔너리
등의 예제를 살펴보았습니다.
파이썬 딕셔너리와 리스트 예제 : 리스트를 딕셔너리로, 딕셔너리 안에 딕셔너리
이번 글에서는
리스트 안에 딕셔너리 사용법을 살펴보겠습니다.
목차
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값을 출력하면?재석이라는 이름이 나올겁니다.
challenge = [
{'name': '재석',
'age': 10},
{'name': '명수',
'age': 12},
{'name': '준하',
'age': 14}
]
print(challenge)
print(challenge[0])
print(challenge[0]['name'])
2. 리스트 안에 새로운 딕셔너리 추가하기
그럼 challenge = [] 리스트 안에 새로운 딕셔너리를 하나 추가해보겠습니다.
아래 코드처럼
new_challenge = {} 라는 새로운 딕셔너리를 하나 만들어줍니다.
그리고 리스트에 항목을 추가하는 append()라는 함수를 써서
이 항목을 추가해줍니다.
그럼 홍철과 관련한 새로운 딕셔너리가 추가된 것을 확인할 수 있습니다.
새롭게 잘 항목이 들어갔는지 한 번 출력해보면
홍철이라는 이름도 잘 확인이 될겁니다.
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%의 학생들이 좋아합니다. 라는 리턴값이 나오게 됩니다.
배라는 과일은 이 리스트에 없기에
항목에 없는 과일 이름입니다. 라는 문구가 리턴됩니다.
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개의 예제를 다시 실습해보겠습니다!
'프로그래밍 > 파이썬기초' 카테고리의 다른 글
서울 열린 데이터광장에서 미세먼지 현황 API 발급받기 (0) | 2023.11.10 |
---|---|
파이썬 딕셔너리 - 리스트 안에 딕셔너리 예제(2) (3) | 2023.11.09 |
파이썬 딕셔너리와 리스트 예제 : 리스트를 딕셔너리로, 딕셔너리 안에 딕셔너리 (0) | 2023.11.07 |
파이썬 딕셔너리(dictionary) 사용법: key값 출력하기, key와 value값 출력하기, key와 vlaue 값 뒤집기 (0) | 2023.11.06 |
파이썬 딕셔너리(dictionary) 사용법: 딕셔너리 만들기, 딕셔너리 데이터 추가하기, value값 출력하기 (2) | 2023.11.03 |