Introdução
Em Python, podemos dividir uma lista em listas menores de tamanho igual usando uma função simples. Isso pode ser útil quando queremos processar grandes quantidades de dados em pedaços menores. Neste desafio, você será solicitado a escrever uma função que recebe uma lista e um inteiro n como entrada e retorna uma lista de n listas menores, cada uma contendo um número igual de elementos da lista original.
Dividir Lista em N Partes
Escreva uma função Python chamada chunk_into_n(lst, n) que recebe uma lista lst e um inteiro n como entrada e retorna uma lista de n listas menores, cada uma contendo um número igual de elementos da lista original. Se a lista original não puder ser dividida uniformemente em n listas menores, a parte final deve conter os elementos restantes.
Para resolver este problema, você pode seguir estes passos:
- Calcule o tamanho de cada parte dividindo o comprimento da lista original por
ne arredondando para cima para o inteiro mais próximo usando a funçãomath.ceil(). - Crie uma nova lista de tamanho
nusando as funçõeslist()erange(). - Use a função
map()para mapear cada elemento da nova lista para uma parte da lista original com o comprimento desize. - Retorne a lista de listas menores.
Sua função deve ter a seguinte assinatura:
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]]
Resumo
Neste desafio, você aprendeu como dividir uma lista em listas menores de tamanho igual usando Python. Você também aprendeu como usar a função math.ceil() para arredondar para cima para o inteiro mais próximo e a função map() para aplicar uma função a cada elemento de uma lista.