Aufteilen einer Liste in N ungefähr gleiche Teile
Das Aufteilen einer Liste in gleiche Teile ist ein häufiges Programmierproblem. Eine besondere Herausforderung besteht darin, eine gleichmäßige Aufteilung zu erreichen, wenn die Listenlänge nicht durch die gewünschte Anzahl von Teilen teilbar ist.
Erwägen Sie beispielsweise, eine Liste mit 7 Elementen in zwei gleiche Teile aufzuteilen. Idealerweise sollte jeder Teil 3 bzw. 4 Elemente haben.
Der bereitgestellte Code chunks() unterteilt die Liste in gleich große Elementblöcke, dies führt jedoch möglicherweise nicht zu einem sogar gespalten. Alternativ könnte durch Transponieren der Blöcke eine gleichmäßige Aufteilung erreicht werden, aber die Reihenfolge der Elemente würde dadurch gestört.
Ein effizienterer Ansatz ist die Verwendung eines Listengenerators, wie im verbesserten Code gezeigt:
def split(a, n): k, m = divmod(len(a), n) return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))
Dieser Code berechnet die ideale Chunk-Größe k und die restlichen Elemente m. Anschließend wird ein Generator erzeugt, der die Liste durchläuft und Teile der gewünschten Größe erstellt.
Zum Beispiel:
>>> list(split(range(11), 3)) [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
Diese Lösung bietet eine effiziente Methode zum Aufteilen einer Liste in ungefähr gleiche Teile , wobei die Elementreihenfolge erhalten bleibt.
Das obige ist der detaillierte Inhalt vonWie teile ich eine Liste in ungefähr gleiche Teile auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In Artikel wird die Unmöglichkeit des Tupelverständnisses in Python aufgrund von Syntax -Mehrdeutigkeiten erörtert. Alternativen wie die Verwendung von Tuple () mit Generatorausdrücken werden vorgeschlagen, um Tupel effizient zu erstellen (159 Zeichen)

Der Artikel erläutert Module und Pakete in Python, deren Unterschiede und Verwendung. Module sind einzelne Dateien, während Pakete Verzeichnisse mit einer __init__.py -Datei sind, die verwandte Module hierarchisch organisieren.

In Artikel werden Docstrings in Python, deren Nutzung und Vorteile erörtert. Hauptproblem: Bedeutung von DocStrings für die Code -Dokumentation und -zugriffsfunktion.

In Artikel werden Lambda -Funktionen, ihre Unterschiede zu regulären Funktionen und deren Nützlichkeit bei Programmierszenarien erläutert. Nicht alle Sprachen unterstützen sie.

In Artikel wird in Python Break, Fortsetzung und Pass erörtert, wobei ihre Rolle bei der Kontrolle der Ausführung und des Programmablaufs der Schleife erläutert wird.

In dem Artikel werden die "Pass" -Anweisung in Python, einem als Platzhalter verwendeten NULL -Operation, in Codestrukturen wie Funktionen und Klassen erörtert, die zukünftige Implementierung ohne Syntaxfehler ermöglicht.

In Artikel werden die Übergabe von Funktionen als Argumente in Python erläutert und Vorteile wie Modularität und Anwendungsfälle wie Sortier und Dekorateure hervorheben.

Artikel erörtert / und // Betreiber in Python: / for True Division, // für die Bodenabteilung. Hauptproblem ist das Verständnis der Unterschiede und Anwendungsfälle.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Dreamweaver Mac
Visuelle Webentwicklungstools

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.
