Python - Looping Dictionary

황인용·2019년 12월 12일
0

Python

목록 보기
25/44

Looping Dictionary

List와 마찬가지로 dictionary도 for 반복구문(loop)를 사용하여 element를 하나한 가지고 반복되는 로직을 구성할 수 있다.
다만 list와 다르게 dictionary는 각 element key와 value로 이루어져 있다는 점을 참고하고해야한다.

## Dictionary Loop
bts_rm = { "실명" : "김남준", "가명" : "RM", "태어난 년도" : 1991 }

for each_key in bts_rm:
  print(f"{each_key}는/은{bts_rm[each_key]} 입니다")

image.png

Looping Dictionary With Values Instead of Keys

key말고 value 값으로만 처음부터 looping하는 방법은 없을까?

Dicionary는 values()함수를 속성으로 가지고 있다. 이 values()함수는 dictionary의 value들을 return해준다.

## Dictionary values() lopp example
bts_rm = { "실명" : "김남준", "가명" : "RM", "태어난 년도" : 1991 }

for each_value in bts_rm.values():
  print(f"{each_value}는/은 BTS 멤버 RM의 정보 입니다")

image.png

Looping Dictionary With Both Keys And Values

위에서 dictionary의 key와 value값을 for 반복구문을 실행하는 것도 가능하다.
key값과 value값을 for구문 실행하기 위해서는 itme()함수를 사용하면된다.
Dictionary의 item()함수는 key와 value를 tuple로 return해준다. 따라서 for반복구문에서 2개의 값을 동시에 받아 실행한다

## Dictionary item() lopp example
bts_rm = { "실명" : "김남준", "가명" : "RM", "태어난 년도" : 1991 }

for each_key, each_value in bts_rm.item():
  print(f"{each_key}는/은 {each_value} 입니다")

image.png

Assignment

Input으로 주어진 list의 각 요소(element)가 해당 list에 몇번 나타나는지 수를 dictionary로 만들어서 리턴해주세요. Dictionary의 key는 list의 요소 값이며 value는 해당 요소의 출연 빈도수 입니다.

예를 들어, 다음과 같은 list가 input으로 주어졌다면:

my_list = ["one", 2, 3, 2, "one"]

다음과 같은 dictionary가 리턴되어야 합니다.

{
"one" : 2,
2 : 2,
3: 1
}

## My Solution
def get_occurrence_count(my_list):
  set_list = {}
  for each_key in my_list:
    set_list[each_key] = my_list.count(each_key)
  return set_list
## Model Solution
for value in my_list:
    if value in occurrence_count:
      current_occurrence      = occurrence_count[value] 
      occurrence_count[value] = current_occurrence + 1
    else:
      occurrence_count[value] = 1
    
  return occurrence_count
profile
dev_pang의 pang.log

0개의 댓글