티스토리 뷰

교재 171p~173p 내용 복습 - 4번 문제는 혼자 풀이하기 어려워 교재 풀이를 이해하는 쪽으로 공부

 

 

2. 딕셔너리와 리스트를 조합하면 다양한 정보를 축적할 수 있습니다. 이를 실행결과처럼 출력되도록 빈칸에 반복문과 print() 함수를 조합해 보세요.

# 딕셔너리의 리스트를 선언합니다.
pets = [
		{"name":"구름", "age": 5},
		{"name":"두부", "age": 4},
		{"name":"초코", "age": 2},
		{"name":"호랑이", "age": 1}
      ]

print("-우리 동네 애완 동물들")
# 코드 작성

# 실행결과
-우리 동네 애완 동물들
구름 5살
두부 4살
초코 2살
호랑이 1살

- 풀이 

리스트 또는 딕셔너리의 요소에서 숫자의 경우 str() 함수를 사용하여 문자열로 변환하는 과정을 기억할 것

for pet in pets: # 딕셔너리안에 요소를 하나씩 대입하여 풀이
    print(pet["name"], str(pet["age"])+"살") # age와 "살" 사이에 공백 때문에 age를 문자열로 바꿔 출력

 


3. 다음 빈칸을 채워 numbers 내부에 들어 있는 숫자가 몇 번 등장하는지를 출력하는 코드를 작성해 보세요.

# 숫자는 무작위로 입력해도 상관 없습니다.
numbers = [1,4,5,2,3,4,8,7,6,4,4,6,9,9,2,2,1]
conuter = {}

for number in numbers:
_______________

# 최종 출력
print(counter)

# 실행결과
{1: 2, 4: 4, 5: 1, 2: 3, 3: 1, 8: 1, 7: 1, 6: 2, 9: 2}

 -풀이

numbers의 요소 값을 하나씩 number에 대입하면서 if문을 사용하여 비어있는 conuter 딕셔너리에 값을 추가하면 된다.

딕셔너리[새로운 키]= 새로운 값

따라서 conuter에 number가 있다면 conuter[1] = counter[1] + 1 , 없다면 딕셔너리 conuter에 추가

for number in numbers:   # 리스트 numbers의 요소를 한 개씩 number에 대입하여 if 문 실행
    if number in conuter :  # 딕셔너리 conuter에 number 값이 있다면 값에 +1 추가 
        conuter[number] = conuter[number] +1
    else :     # number 값이 없다면 딕셔너리에 추가
        conuter[number] = 1

 

 


4. 파이썬은 다음과 같은 방법으로 특정 값이 어떤 자료형인지 확인할 수 있습니다. 이를 활용하여 다음 빈칸을 채워 실행결과와 같이 출력되게 만들어 보세요.

힌트 : 리스트가 중첩되어 두 번 감싸 졌을 경우에는 반복문을 두 번 사용해야 합니다.

type("문자열") is str # 문자열인지 확인
type([]) is list # 리스트인지 확인
type({}) is dict # 딕셔너리인지 확인
# 딕셔너리를 선언합니다.
character = {
"name" : "기사",
"level" : 12,
"items" : {"sword" :"불꽃의 검", "armor":"풀플레이트"},
"skill" :["배기", "세게 배기", "아주 세게 배기"]
}

# for 반복문을 사용합니다.
for key in character :
___________

# 실행결과
name: 기사
level : 12
sword : 불꽃의 검
armor : 풀플레이트
skill : 베기
skill : 세게 베기
skill : 아주 세게 베기

 -풀이  문제가 어려워 교재 내용을 이해한대로 적어보았다... ㅠㅠ

 

딕셔너리 값이 리스트, 딕셔너리가 중첩되어있어 for반복문을 중첩된 만큼 사용해야한다.

딕셔너리 안에 값이 리스트인 키와, 딕셔너리인 키가 있기 때문에 if문에서 type() 함수를 사용하여 걸러주고, 각 리스트, 딕셔너리 내용을 풀기 위해 if문 안에 for문을 사용하여 내용을 출력하면된다.

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

 

 

 


내용 출처 - 혼자 공부하는 파이썬

'study > Python' 카테고리의 다른 글

Tuple  (0) 2022.06.16
List, Dictionary 관련 기본 함수 및 리스트 내포  (0) 2022.06.16
Dictionary  (0) 2022.06.13
List - 혼자 공부하는 파이썬 예제 풀이 (개인 공부)  (0) 2022.06.13
List  (0) 2022.06.10
댓글