소개
Python 에서 주어진 함수를 기반으로 리스트의 요소들을 그룹화할 수 있습니다. 이는 단어 리스트를 길이별로 그룹화하거나 숫자 리스트를 짝수/홀수 여부로 그룹화하는 경우와 같이 다양한 상황에서 유용할 수 있습니다. 이 챌린지에서는 주어진 함수를 기반으로 리스트의 요소들을 그룹화하는 함수를 작성해야 합니다.
Python 에서 주어진 함수를 기반으로 리스트의 요소들을 그룹화할 수 있습니다. 이는 단어 리스트를 길이별로 그룹화하거나 숫자 리스트를 짝수/홀수 여부로 그룹화하는 경우와 같이 다양한 상황에서 유용할 수 있습니다. 이 챌린지에서는 주어진 함수를 기반으로 리스트의 요소들을 그룹화하는 함수를 작성해야 합니다.
리스트 lst와 함수 fn을 인수로 받아, fn을 lst의 요소에 적용한 결과가 키이고, fn을 적용했을 때 해당 키를 생성하는 lst의 요소 리스트가 값인 딕셔너리를 반환하는 함수 group_by(lst, fn)을 작성하십시오.
예를 들어, 숫자 리스트 [6.1, 4.2, 6.3]이 있고, 정수 부분별로 그룹화하려는 경우, math 모듈의 floor 함수를 그룹화 함수로 사용할 수 있습니다. 예상되는 출력은 {4: [4.2], 6: [6.1, 6.3]}입니다.
from collections import defaultdict
def group_by(lst, fn):
d = defaultdict(list)
for el in lst:
d[fn(el)].append(el)
return dict(d)
from math import floor
group_by([6.1, 4.2, 6.3], floor) ## {4: [4.2], 6: [6.1, 6.3]}
group_by(['one', 'two', 'three'], len) ## {3: ['one', 'two'], 5: ['three']}
이 챌린지에서는 주어진 함수를 기반으로 리스트의 요소들을 그룹화하는 방법을 배웠습니다. 또한 그룹을 저장하기 위해 딕셔너리를 사용하고, 이를 채우기 위해 루프를 사용하는 함수를 작성했습니다. 이는 다양한 컨텍스트에서 적용할 수 있는 유용한 기술입니다.