Dividir Lista em N Partes

Beginner

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

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:

  1. Calcule o tamanho de cada parte dividindo o comprimento da lista original por n e arredondando para cima para o inteiro mais próximo usando a função math.ceil().
  2. Crie uma nova lista de tamanho n usando as funções list() e range().
  3. Use a função map() para mapear cada elemento da nova lista para uma parte da lista original com o comprimento de size.
  4. 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.