Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich alle Permutationen einer Liste in Python generieren?

Wie kann ich alle Permutationen einer Liste in Python generieren?

Linda Hamilton
Freigeben: 2024-12-22 13:15:12
Original
920 Leute haben es durchsucht

How Can I Generate All Permutations of a List in Python?

Alle Permutationen einer Liste generieren

Anhand einer Liste von Elementen besteht die Aufgabe darin, alle möglichen Permutationen der Elemente zu generieren. Permutationen sind verschiedene Kombinationen der Elemente in der Liste.

Standardbibliothekslösung

Die Python-Standardbibliothek stellt für diesen Zweck die Funktion itertools.permutations bereit:

import itertools
list(itertools.permutations([1, 2, 3]))
Nach dem Login kopieren

Dieser Code generiert alle Permutationen der Liste [1, 2, 3] und gibt sie als Liste von zurück Tupel.

Alternative Implementierungen

Hier ist eine alternative Implementierung einer Permutationsfunktion mit Rekursion:

def permutations(elements):
    if len(elements) <= 1:
        yield elements
        return
    for perm in permutations(elements[1:]):
        for i in range(len(elements)):
            yield perm[:i] + elements[0:1] + perm[i:]
Nach dem Login kopieren

Diese Implementierung erstellt Permutationen durch iteratives Addieren das erste Element der Liste an unterschiedliche Positionen in den Permutationen der übrigen Elemente.

Ein weiterer alternativer Ansatz verwendet itertools.product:

def permutations(iterable, r=None):
    pool = tuple(iterable)
    n = len(pool)
    r = n if r is None else r
    for indices in product(range(n), repeat=r):
        if len(set(indices)) == r:
            yield tuple(pool[i] for i in indices)
Nach dem Login kopieren

Diese Implementierung iteriert über alle möglichen Kombinationen von Indizes von 0 bis n-1 (wobei n die Listenlänge ist) und generiert eine Permutation aus jeder Kombination, wenn die Indizes eindeutig sind (was anzeigt, dass jedes Element in der Liste einmal enthalten ist).

Das obige ist der detaillierte Inhalt vonWie kann ich alle Permutationen einer Liste in Python generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage