Maison  >  Article  >  développement back-end  >  Comment générer des permutations d'une chaîne à l'aide de « itertools.permutations() » de Python ?

Comment générer des permutations d'une chaîne à l'aide de « itertools.permutations() » de Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 02:35:27390parcourir

How to Generate Permutations of a String Using Python's `itertools.permutations()`?

Trouver les permutations d'une chaîne avec itertools.permutations()

Lorsque nous sommes confrontés à la génération de toutes les permutations d'une chaîne donnée, il est tentant de recourir aux techniques manuelles impliquant une itération sur les caractères et leur échange. Cependant, le module itertools de Python offre une solution élégante grâce à la méthode permutations().

Iteratortools.permutations() accepte un itérable, tel qu'une chaîne, et renvoie des permutations de longueur successives de ses éléments. Par défaut, il génère des permutations complètes, mais vous pouvez spécifier la longueur souhaitée avec le paramètre r.

Pour obtenir toutes les permutations d'une chaîne en Python, utilisez simplement le code suivant :

from itertools import permutations

string = 'stack'

# Get all permutations as tuples
perms = permutations(string)

# Convert permutations to strings for readability
perms_as_strings = [''.join(p) for p in perms]

Cette approche donne une liste contenant toutes les permutations possibles de la chaîne donnée.

Notez que l'ordre des permutations dans la liste est lexicographique. Cela signifie que si votre chaîne est triée, les chaînes permutées seront également triées.

Gestion des doublons

Si votre chaîne contient des caractères en double, la méthode permutations() le fera générer également des doublons. Pour éliminer les doublons, vous pouvez convertir votre liste de permutations en un ensemble :

perms_as_strings = set(perms_as_strings)

Cet ensemble ne contiendra désormais que des permutations uniques. Cependant, il est important de noter que l'ordre des éléments est perdu lors de la conversion en ensemble.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn