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

Wie kann ich Permutationen in Python generieren?

Linda Hamilton
Freigeben: 2024-12-24 04:58:31
Original
849 Leute haben es durchsucht

How Can I Generate Permutations in Python?

Permutationen mithilfe von Python-Bibliotheken generieren

Um alle Permutationen einer Liste in Python zu generieren, besteht ein praktischer Ansatz darin, die Funktion itertools.permutations von zu verwenden die Standardbibliothek. Zum Beispiel:

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

Benutzerdefinierte Implementierung von Permutationen

Alternativ können Sie eine benutzerdefinierte Implementierung zur Berechnung von Permutationen erstellen:

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

Andere Ansätze

Wenn Sie möchten, können Sie auch Folgendes erkunden Ansätze:

# Using reversed indices
def permutations(iterable, r=None):
    pool = tuple(iterable)
    n = len(pool)
    r = n if r is None else r
    if r > n:
        return
    indices = range(n)
    cycles = range(n, n-r, -1)
    yield tuple(pool[i] for i in indices[:r])
    while n:
        for i in reversed(range(r)):
            cycles[i] -= 1
            if cycles[i] == 0:
                indices[i:] = indices[i+1:] + indices[i:i+1]
                cycles[i] = n - i
            else:
                j = cycles[i]
                indices[i], indices[-j] = indices[-j], indices[i]
                yield tuple(pool[i] for i in indices[:r])
                break
        else:
            return

# Using 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

Das obige ist der detaillierte Inhalt vonWie kann ich Permutationen 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