[Python 문제풀이] Looping Dictionary

Jungmin Seo·2021년 6월 14일
0

Task

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

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

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

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

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

Solution #1

def get_occurrence_count(my_list):

  dictionary = {}

  for j in range(len(my_list)):
    n = 1
    for i in range(len(my_list)):
    
      if i != j and my_list[i] == my_list[j]:
        n += 1
      else:
        continue
    
    dictionary[my_list[j]] = n
    
  return dictionary

말도 안되게 복잡하게 풀었다.
가능하면 loop를 돌릴때, 리스트 속 요소를 사용해보자.
훨씬 더 간단해질 수 있다..


Solution #2

def get_occurrence_count(my_list):
  my_dict = {}
  for value in my_list:
    if value in my_dict:
      my_dict[value] += 1
    else:
      my_dict[value] = 1

  return my_dict

1번처럼 풀어놓고 2번 풀이를 접했을 때는 정말 충격적이었지만,
이렇게 배워나가야지,,

profile
Hello World!

0개의 댓글

관련 채용 정보