Dictionary - Looping & Nesting

jinatra·2021년 8월 9일
0

Python

목록 보기
9/15
post-thumbnail

Dictionary - Looping & Nesting


Looping Dictionary (key)

for

list와 마찬가지로 dictionary도 for문을 사용하여 looping이 가능
dictionary는 key와 value값을 가지고 있으므로 key값을 통해 value값을 return시킴

example = {'영화_1' : '로맨스' , '영화_2' : '코미디' , '영화_3' : '액션'}

for key_name in example:
    print(example[key_name])
    
    
# Output
로맨스
코미디
액션

# dictionary의 key값에 지정된 value값이 출력되는 것을 볼 수 있다.

Looping Dictionary (key & value)

.items()
dictionary_name.items()

.items() method를 이용하여, key값과 value값을 동시에 출력되도록 할 수 있다.
이 경우엔 keyvalue를 동시에 지정해주면 된다.

.items()를 이용하면 Tuple 형식으로 출력이 이루어진다.

example = {'영화_1' : '로맨스' , '영화_2' : '코미디' , '영화_3' : '액션'}

for key_name, value_name in example.items():
    print(key_name , value_name)


# Output
영화_1 로맨스
영화_2 코미디
영화_3 액션

List of Dictionaries

한번에 여러 dictionary를 다루고자 할 때에는 list 내에 묶어서 사용 할 수 있다.

이 경우에 원하고자 하는 value를 출력하려면 상당히 복잡한 프로세스를 거친다.

# 다수의 dictionary 집합의 list화

example = [
    {
        '제목' : '닉과 노라의 인피니트 플레이리스트' ,
        '장르' : '로맨틱 코미디' ,
        '개봉' : '2008년' ,
        '국가' : '미국'
    },
    {
        '제목' : '펀치 드렁크 러브' ,
        '장르' : '코미디' ,
        '개봉' : '2002년' ,
        '국가' : '미국'
    },
    {
        '제목' : '콜드 워' ,
        '장르' : '로맨스' ,
        '개봉' : '2018년' ,
        '국가' : '폴란드'
    }
]

for movie in example:
    if movie['제목'] == '콜드 워':
        print(movie['장르'])


# Output
로맨스

# movie 변수를 지정해준 후, key 및 value값을 지정해줌으로 인해 원하는 key값과 value값을 출력

Nested Dictionary

list가 아닌 dictionary 안에 또다른 dictionary를 포함할 수도 있다.
key값을 주고, value값으로 dictionary를 부여한다는 개념으로도 이해할 수 있을 것이다.

example = {
    '영화_1' : {
        '제목' : '닉과 노라의 인피니트 플레이리스트' ,
        '장르' : '로맨틱 코미디' ,
        '개봉' : '2008년' ,
        '국가' : '미국'
        },
    '영화_2' : {
        '제목' : '펀치 드렁크 러브' ,
        '장르' : '코미디' ,
        '개봉' : '2002년' ,
        '국가' : '미국'
        },
    '영화_3' : {
        '제목' : '콜드 워' ,
        '장르' : '로맨스' ,
        '개봉' : '2018년' ,
        '국가' : '폴란드'
        }
}

print(example['영화_2']['제목'])


# Output
펀치 드렁크 러브


# 영화_1,2,3의 key에 각각의 정보에 해당하는 자료들을 dictionary 형태로 할당




Take Away

Dictionary, Listing과 Nesting의 차이

dictionary를 list화 시킬 수 있고, 또는 dictionary 자체를 value화 시켜서 또다른 key에 할당할 수 있다.
list화 할 경우엔 당연히 변수를 list화 시켜야 하고,
nesting할 경우엔, (완전 당연하게도) 변수를 dictionary화 시키면 된다.

이렇게 글로 적으면 참 쉬워보이는데 막상 적용을 하려고 하면 헷갈린다 😵‍💫

profile
으악

0개의 댓글