Permutations d'une chaîne en Python
-
Utilisez la fonction
itertools.permutations()
pour renvoyer toutes les permutations d’une chaîne en Python - Créer une fonction définie par l’utilisateur pour renvoyer toutes les permutations d’une chaîne en Python
Par permutation, on entend le nombre total de réarrangements possibles pour un nombre donné d’éléments de manière unique sans tenir compte de l’ordre de réarrangement.
Une chaîne, comme nous le savons, peut être considérée comme une collection de caractères individuels.
Dans cet article, nous allons essayer de trouver toutes les permutations possibles pour une chaîne donnée.
Utilisez la fonction itertools.permutations()
pour renvoyer toutes les permutations d’une chaîne en Python
Le module itertools
permet de créer et de travailler avec différents objets itérables. La fonction permutations()
de ce module peut renvoyer tous les arrangements possibles pour un ensemble de valeurs donné.
Il retourne un objet de type itertools
qui contient un tuple contenant l’agencement possible des éléments. Nous pouvons utiliser une liste pour visualiser les éléments de cet objet. Nous pouvons également utiliser cette fonction avec une chaîne.
Par example,
from itertools import permutations
lst = list(permutations("day"))
print(lst)
Production:
[('d', 'a', 'y'), ('d', 'y', 'a'), ('a', 'd', 'y'), ('a', 'y', 'd'), ('y', 'd', 'a'), ('y', 'a', 'd')]
Remarquez les tuples créés dans la sortie contenant la disposition des caractères. Nous pouvons changer cela en une liste de chaînes en utilisant la fonction join() et la méthode de compréhension de liste.
Voir le code suivant.
from itertools import permutations
lst = ["".join(p) for p in permutations("day")]
print(lst)
Production:
['day', 'dya', 'ady', 'ayd', 'yda', 'yad']
Nous combinons les éléments du tuple à l’aide de la fonction join()
et l’utilisons pour chaque tuple en itérant dans la liste.
Créer une fonction définie par l’utilisateur pour renvoyer toutes les permutations d’une chaîne en Python
Nous pouvons créer une fonction simple pour trouver toutes les permutations d’une chaîne. Nous allons créer une fonction récursive. Dans cette méthode, nous n’échangerons qu’une seule fois les éléments de chaîne et appellerons à nouveau la fonction avec le nouvel arrangement. Nous affichons les dispositions finales.
Nous implémentons la logique ci-dessus dans le code suivant.
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))
Production:
day
dya
ady
ayd
yad
yda
None
Comme vous pouvez le voir, les positions de début et de fin sont spécifiées là où nous souhaitons effectuer les réarrangements. La chaîne est également transmise sous forme de liste de caractères. Pour trouver toutes les permutations possibles, nous définissons le début à 0 et la fin comme longueur de la chaîne.
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.
LinkedInArticle connexe - Python String
- Supprimer les virgules de la chaîne en Python
- Comment vérifier qu'une chaîne est vide de manière pythonique
- Convertir une chaîne en nom de variable en Python
- Comment supprimer les espaces dans une chaîne de caractères en Python
- Comment extraire des nombres d'une chaîne de caractèresen Python
- Comment convertir une chaîne de caractères en datetime en Python