소개
Python 에서 간단한 함수를 사용하여 리스트를 동일한 크기의 더 작은 리스트로 분할할 수 있습니다. 이는 대량의 데이터를 더 작은 청크 (chunk) 로 처리하려는 경우에 유용합니다. 이 챌린지에서는 리스트와 정수 n을 입력으로 받아 원래 리스트의 요소를 동일한 수로 포함하는 n개의 더 작은 리스트의 리스트를 반환하는 함수를 작성해야 합니다.
리스트를 N 개의 청크로 분할하기
lst라는 리스트와 정수 n을 입력으로 받아 원래 리스트의 요소를 동일한 수로 포함하는 n개의 더 작은 리스트의 리스트를 반환하는 Python 함수 chunk_into_n(lst, n)을 작성하십시오. 원래 리스트를 n개의 더 작은 리스트로 균등하게 분할할 수 없는 경우, 마지막 청크에는 나머지 요소가 포함되어야 합니다.
이 문제를 해결하려면 다음 단계를 따를 수 있습니다.
- 원래 리스트의 길이를
n으로 나누고math.ceil()함수를 사용하여 가장 가까운 정수로 올림하여 각 청크의 크기를 계산합니다. list()및range()함수를 사용하여 크기가n인 새 리스트를 생성합니다.map()함수를 사용하여 새 리스트의 각 요소를size길이의 원래 리스트의 청크에 매핑합니다.- 더 작은 리스트의 리스트를 반환합니다.
함수는 다음과 같은 시그니처 (signature) 를 가져야 합니다.
def chunk_into_n(lst: list, n: int) -> list:
from math import ceil
def chunk_into_n(lst, n):
size = ceil(len(lst) / n)
return list(
map(lambda x: lst[x * size:x * size + size],
list(range(n)))
)
chunk_into_n([1, 2, 3, 4, 5, 6, 7], 4) ## [[1, 2], [3, 4], [5, 6], [7]]
요약
이 챌린지에서는 Python 을 사용하여 리스트를 동일한 크기의 더 작은 리스트로 분할하는 방법을 배웠습니다. 또한 가장 가까운 정수로 올림하기 위해 math.ceil() 함수를 사용하는 방법과 리스트의 각 요소에 함수를 적용하기 위해 map() 함수를 사용하는 방법을 배웠습니다.