Liste in N Blöcke teilen

PythonPythonBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In Python können wir eine Liste in kleinere Listen gleicher Größe aufteilen, indem wir eine einfache Funktion verwenden. Dies kann nützlich sein, wenn wir große Mengen an Daten in kleineren Blöcken verarbeiten möchten. In dieser Herausforderung werden Sie aufgefordert, eine Funktion zu schreiben, die eine Liste und eine Ganzzahl n als Eingabe nimmt und eine Liste von n kleineren Listen zurückgibt, wobei jede Liste eine gleiche Anzahl von Elementen aus der ursprünglichen Liste enthält.

Liste in N Blöcke teilen

Schreiben Sie eine Python-Funktion namens chunk_into_n(lst, n), die eine Liste lst und eine Ganzzahl n als Eingabe nimmt und eine Liste von n kleineren Listen zurückgibt, wobei jede Liste eine gleiche Anzahl von Elementen aus der ursprünglichen Liste enthält. Wenn die ursprüngliche Liste nicht gleichmäßig in n kleinere Listen aufgeteilt werden kann, soll der letzte Block die verbleibenden Elemente enthalten.

Um dieses Problem zu lösen, können Sie die folgenden Schritte ausführen:

  1. Berechnen Sie die Größe jedes Blocks, indem Sie die Länge der ursprünglichen Liste durch n dividieren und auf die nächste ganze Zahl aufrunden, indem Sie die math.ceil()-Funktion verwenden.
  2. Erstellen Sie eine neue Liste der Größe n mit den Funktionen list() und range().
  3. Verwenden Sie die map()-Funktion, um jedes Element der neuen Liste einem Block der ursprünglichen Liste der Länge size zuzuordnen.
  4. Geben Sie die Liste der kleineren Listen zurück.

Ihre Funktion sollte die folgende Signatur haben:

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]]

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie eine Liste in kleinere Listen gleicher Größe mit Python aufteilen. Sie haben auch gelernt, wie Sie die math.ceil()-Funktion verwenden, um auf die nächste ganze Zahl aufzurunden, und die map()-Funktion, um eine Funktion auf jedes Element einer Liste anzuwenden.