함수를 이용한 요소 그룹화

Beginner

This tutorial is from open-source community. Access the source code

소개

Python 에서는 주어진 함수를 기반으로 리스트의 요소를 그룹화할 수 있습니다. 이는 각 그룹의 발생 횟수를 계산하려는 경우 유용합니다. 이 챌린지에서는 주어진 함수를 기반으로 리스트의 요소를 그룹화하고 각 그룹의 요소 수를 반환하는 함수를 만드는 과제를 수행하게 됩니다.

그룹화된 요소 개수 세기

리스트 lst와 함수 fn을 인수로 사용하는 함수 count_by(lst, fn = lambda x: x)를 작성하십시오. 이 함수는 주어진 함수를 기반으로 리스트의 요소를 그룹화하고 각 그룹의 요소 수를 포함하는 딕셔너리를 반환해야 합니다.

이 문제를 해결하려면 다음 단계를 따를 수 있습니다.

  1. collections.defaultdict를 사용하여 딕셔너리를 초기화합니다.
  2. map()을 사용하여 주어진 함수를 리스트의 각 요소에 적용합니다.
  3. 매핑된 값을 반복하고 딕셔너리에서 각 요소의 개수를 증가시킵니다.

함수는 결과 딕셔너리를 반환해야 합니다.

from collections import defaultdict

def count_by(lst, fn = lambda x: x):
  count = defaultdict(int)
  for val in map(fn, lst):
    count[val] += 1
  return dict(count)
from math import floor

count_by([6.1, 4.2, 6.3], floor) ## {6: 2, 4: 1}
count_by(['one', 'two', 'three'], len) ## {3: 2, 5: 1}

요약

이 챌린지에서는 주어진 함수를 기반으로 리스트의 요소를 그룹화하고 각 그룹의 요소 수를 반환하는 방법을 배웠습니다. 또한 이 문제를 해결하기 위해 collections.defaultdictmap()을 사용하는 방법도 배웠습니다.