우선, 한 달 동안 수업 지각한 학생들의 빈도수를 확인하는 프로그램을 보자
# 한 달 동안 수업 지각한 사람 리스트
lateness = ["Jake", "Mike", "Tylor", "Josh", "Josh", "Mike", "Brian", "Jake", "Jake", "Barnet", "Jake"]
# dict 선언
late_dict = {}
for late in lateness:
# 지각한 사람이 이미 dict 명단에 있다면
if late in late_dict:
late_dict[late] +=1
# 지각한 사람이 이미 dict 명단에 없다면
else:
late_dict[late] = 1
print(late_dict)
결과
사용자가 데이터를 다루는데 있어서, 리스트에 인덱스로 접근하는 것보다 일상에서 사전을 사용하듯 'key'와 'value'로 접근하는 것이 편할 때가 있다.
배열이 그래서 나쁘다고 말하는 것은 절대 아니다.
다만, 내가 구현하려는 프로그램에 딕셔너리가 더욱 효과적일 경우에
'배열 또는 리스트 -> 딕셔너리'로 변환해야 한다는 너무나 당연한 말을 하는 것이다ㅎㅎ
fruits = {"banana" : 5,
"apple" : 3,
"kiwi" : 7,
"pineapple": 1}
# 바나나의 value는 ?
print("바나나 개수 : " + str(fruits["banana"]))
print(fruits.keys())
print(fruits.values())
연예인 부부 이름 맞추기 게임을 만들며 사용했던 dict는 다음과 같다.
answer = "sentence" # <-- string 자료형의 answer
answer = list(answer) # <-- list화 ['s','e','n','t','e','n','c','e']
answer = dict.fromkeys(answer)
print(answer)
answer = "umbrella"
answer = list(answer)
answer = dict.fromkeys(answer)
print(answer)
answer = "mountain"
answer = list(answer)
answer = dict.fromkeys(answer)
print(answer)
그 결과
- One step at a time -