Permutationen einer Zeichenkette in Python
-
Verwenden Sie die Funktion
itertools.permutations()
, um alle Permutationen einer Zeichenkette in Python zurückzugeben - Erstellen Sie eine benutzerdefinierte Funktion, um alle Permutationen für einen String in Python zurückzugeben
Unter Permutation verstehen wir die Gesamtzahl der möglichen Umlagerungen für eine gegebene Anzahl von Elementen auf einzigartige Weise, ohne die Umordnungsreihenfolge zu berücksichtigen.
Eine Zeichenkette kann man sich bekanntlich als eine Ansammlung einzelner Zeichen vorstellen.
In diesem Artikel werden wir versuchen, alle möglichen Permutationen für einen bestimmten String zu finden.
Verwenden Sie die Funktion itertools.permutations()
, um alle Permutationen einer Zeichenkette in Python zurückzugeben
Das Modul itertools
wird verwendet, um verschiedene iterierbare Objekte zu erstellen und mit ihnen zu arbeiten. Die Funktion permutations()
dieses Moduls kann alle möglichen Anordnungen für einen bestimmten Satz von Werten zurückgeben.
Es gibt ein Objekt vom Typ itertools
zurück, das ein Tupel enthält, das die mögliche Anordnung der Elemente enthält. Wir können eine Liste verwenden, um die Elemente dieses Objekts anzuzeigen. Wir können diese Funktion auch mit einem String verwenden.
Beispielsweise,
from itertools import permutations
lst = list(permutations("day"))
print(lst)
Ausgabe:
[('d', 'a', 'y'), ('d', 'y', 'a'), ('a', 'd', 'y'), ('a', 'y', 'd'), ('y', 'd', 'a'), ('y', 'a', 'd')]
Beachten Sie die Tupel, die in der Ausgabe erstellt werden und die Anordnung der Zeichen enthalten. Wir können dies mit der Funktion join() und der Methode zum List Comprehensions in eine Liste von Strings ändern.
Siehe den folgenden Code.
from itertools import permutations
lst = ["".join(p) for p in permutations("day")]
print(lst)
Ausgabe:
['day', 'dya', 'ady', 'ayd', 'yda', 'yad']
Wir kombinieren die Tupelelemente mit der Funktion join()
und verwenden diese für jedes Tupel, indem wir die Liste durchlaufen.
Erstellen Sie eine benutzerdefinierte Funktion, um alle Permutationen für einen String in Python zurückzugeben
Wir können eine einfache Funktion erstellen, um alle Permutationen einer Zeichenkette zu finden. Wir erstellen eine rekursive Funktion. Bei dieser Methode tauschen wir die String-Elemente nur einmal aus und rufen die Funktion mit dem neuen Arrangement erneut auf. Wir zeigen die endgültigen Arrangements.
Wir implementieren die obige Logik im folgenden Code.
def string_permutations(s, i, n):
if i == n:
print("".join(s))
else:
for j in range(i, n):
s[i], s[j] = s[j], s[i]
string_permutations(s, i + 1, n)
s[i], s[j] = s[j], s[i]
a = "day"
x = len(a)
s = list(a)
print(permute(s, 0, x))
Ausgabe:
day
dya
ady
ayd
yad
yda
None
Wie Sie sehen, sind die Start- und Endpositionen angegeben, an denen wir die Neuanordnungen durchführen möchten. Der String wird auch als Liste von Zeichen übergeben. Um alle möglichen Permutationen zu finden, setzen wir den Anfang auf 0 und das Ende als Länge des Strings.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInVerwandter Artikel - Python String
- Entfernen Kommas aus String in Python
- Wie man prüft, ob eine Zeichenkette auf pythonische Weise leer ist
- Konvertieren einer Zeichenkette in einen Variablennamen in Python
- Wie man Leerzeichen in einem String in Python entfernt
- Wie man in Python Zahlen aus einer Zeichenkette extrahiert
- Wie man in Python String in datetime konvertiert