Wie man alle Permutationen einer Liste in Python erzeugt
-
Verwenden Sie
itertools.permutations
, um alle Permutationen einer Liste in Python zu erzeugen - Rekursion verwenden, um alle Permutationen einer Liste in Python zu erzeugen
In diesem Tutorial werden Methoden besprochen, um alle Permutationen einer Liste in Python zu erzeugen.
Verwenden Sie itertools.permutations
, um alle Permutationen einer Liste in Python zu erzeugen
Python bietet ein Standard-Bibliothekstool zur Erzeugung von Permutationen: itertools.permutation
. Das untenstehende Beispiel zeigt, wie man dies verwendet, um alle Permutationen einer Liste zu erzeugen.
import itertools
inp_list = [4, 5, 6]
permutations = list(itertools.permutations(inp_list))
print(permutations)
Ausgabe:
[(4, 5, 6), (4, 6, 5), (5, 4, 6), (5, 6, 4), (6, 4, 5), (6, 5, 4)]
Die Standardlänge der Permutation wird auf die Länge der Eingabeliste gesetzt. Wir können jedoch die Länge der Permutation im Funktionsaufruf itertools.permutations
angeben. Das folgende Beispiel veranschaulicht dies.
import itertools
inp_list = [1, 2, 3]
permutations = list(itertools.permutations(inp_list, r=2))
print(permutations)
Ausgabe:
[(4, 5), (4, 6), (5, 4), (5, 6), (6, 4), (6, 5)]
Das folgende Beispiel veranschaulicht, wie alle Permutationen aller möglichen Längen einer gegebenen Liste erzeugt werden können.
import itertools
inp_list = [1, 2, 3]
permutations = []
for i in range(1, len(inp_list) + 1):
permutations.extend(list(itertools.permutations(inp_list, r=i)))
print(permutations)
Ausgabe:
[(4,), (5,), (6,), (4, 5), (4, 6), (5, 4), (5, 6), (6, 4), (6, 5), (4, 5, 6), (4, 6, 5), (5, 4, 6), (5, 6, 4), (6, 4, 5), (6, 5, 4)]
Rekursion verwenden, um alle Permutationen einer Liste in Python zu erzeugen
Wir können auch die Rekursion verwenden, um alle Permutationen einer Liste in Python zu erzeugen. Das folgende Beispiel veranschaulicht dies.
def permutations(start, end=[]):
if len(start) == 0:
print(end)
else:
for i in range(len(start)):
permutations(start[:i] + start[i + 1 :], end + start[i : i + 1])
permutations([4, 5, 6])
Ausgabe:
[4, 5, 6]
[4, 6, 5]
[5, 4, 6]
[5, 6, 4]
[6, 4, 5]
[6, 5, 4]
Verwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert