컴퓨터 & 코딩/Python

[혼공학습단 8기][혼공파] 딕셔너리와 for 반복문 (3주차 보충)

구로그 2022. 7. 29. 18:21
728x90

딕셔너리리스트

구분 선언 형식 사용 예
리스트 list_a = [ ] list_a[1]
딕셔너리 dict_a = { }  dict_a["name"]

리스트는 인덱스를 기반으로 값을 저장하는 것

딕셔너리는 를 기반으로 값을 저장하는 것 

 

 

 

 

딕셔너리와 for 반복문

for 키 변수 in 딕셔너리:
    코드

 

p171 2번 문제: 

pets = [
    {"name": "구름", "age": 5},
    {"name": "초코", "age": 3},
    {"name": "아지", "age": 1},
    {"name": "호랑이", "age": 2}
]

#format()을 사용하는 방법 (숫자 > 문자열) 
print("# 우리 동네 애완 동물들")
for pet in pets:
    print("{} {}살".format(pet["name"], pet["age"]))

#딕셔너리만 사용하는 방법 
print("# 우리 동네 애완 동물들")
for pet in pets: 
    print(pet["name"], str(pet["age"])+"살")

 

p172 3번 문제: 조건문, 리스트, 딕셔너리, 반복문 조합 

numbers = [1, 2, 6, 8, 4, 3, 2, 1, 9, 5, 4, 9, 7, 2, 1, 3, 5, 4, 8, 9, 7, 2, 3]
counter = {}

# 내가 푼 것 (list.count() 활용) 
for number in numbers:
    if number in counter:
        pass
    else:
        counter[number] = numbers.count(number)

print(counter)

# 교재 답안
for number in numbers:
    if number in counter:
        counter[number] += 1 
    else:
    # 초기화 하는 것 
        counter[number] = 1 

print(counter)

p173 4번 문제: 

character = {
   "name": "기사", 
   "leve": 12, 
   "items": {
       "sword": "불꽃의 검",
       "armor": "풀플레이트"
       },
    "skill": ["베기", "세게 베기", "아주 세게 베기"]
    }

# 내가 푼 것 
for key in character:
    if type(character[key]) is list:
        for a in character[key]:
            print(key, ":", a)
    elif type(character[key]) is dict:
        for b in character[key]:
            print(b, ":", character[key][b])
    else:
        print(key, ":", character[key])

# 교재 정답
for key in character:
    if type(character[key]) is dict: 
        for small_key in character[key]:
            print(small_key, ":", character[key][small_key])
    elif type(character[key]) is list:
        for item in character[key]:
            print(key, ":", item)
    else:
        print(key, ":", character[key])

 

4번 문제에서는 dict 안에 dict 에 접근하는 게 어려웠다. 

한 번에 풀지 않고 차근차근 하나씩 빼보았더니 각각 요소에 어떻게 접근하는지 파악할 수 있게 되었다. 

 

어제 리스트와 for 반복문 공부했을 때까지만 해도 아직 코드 읽기가 어렵고 어떻게 생각을 해야하는 건지 헷갈렸는데 

아래 영상을 보고 감을 좀 잡을 수 있게 되었다. 어제는 문제 푸는 거 손도 못댔는데 오늘은 시도라도 해볼 수 있게 되어 기쁘다! 

 

반응형