Maison > Article > développement back-end > Programme Python pour trouver tous les sous-ensembles d'une chaîne
En Python, un sous-ensemble d'une chaîne est une séquence de caractères qui fait partie de la chaîne d'origine. Nous pouvons trouver tous les sous-ensembles d'une chaîne en utilisant le module itertools en Python. Dans cet article, nous verrons comment générer tous les sous-ensembles d'une chaîne en réalisant toutes les combinaisons possibles des caractères de la chaîne.
itertools.combination(string,r)
La fonction combinaison() du module itertools accepte une chaîne et r, où r représente la taille des différentes combinaisons de chaînes possibles. Il renvoie toutes les combinaisons de caractères possibles d'une chaîne.
Initialisez une liste vide appelée combinaison
Utilisez une boucle for et la fonction itertools.combination pour générer toutes les combinaisons de caractères possibles dans la chaîne.
Filtrer le contenu qui n'est pas un sous-ensemble de la chaîne d'origine
Sous-ensemble de retour
Dans l'exemple ci-dessous, nous importons d'abord le module itertools pour générer toutes les combinaisons de caractères possibles dans une chaîne. La fonction find_subsets() accepte une chaîne en entrée et renvoie tous les sous-ensembles possibles de la chaîne. La méthode find_subset() crée d'abord une liste vide pour stocker tous les sous-ensembles. Ensuite, à l'aide de la boucle for et de la fonction itertools.combination(), il génère tous les sous-ensembles possibles de la chaîne et les stocke dans une liste de combinaisons. Une fois que toutes les combinaisons ont été générées et stockées, nous devons filtrer les chaînes qui ne sont pas un sous-ensemble de la chaîne d'origine et stocker ces sous-ensembles dans une liste appelée sous-ensemble. Ce sous-ensemble est ensuite renvoyé par la fonction comme tous les sous-ensembles possibles de la chaîne.
import itertools def find_subsets(string): # Get all possible combinations of characters in the string combinations = [] for i in range(len(string) + 1): combinations += itertools.combinations(string, i) # Filter out the ones that are not subsets of the original string subsets = [] for c in combinations: subset = ''.join(c) if subset != '': subsets.append(subset) return subsets # Test the function string = 'abc' subsets = find_subsets(string) print(subsets)
['a', 'b', 'c', 'ab', 'ac', 'bc', 'abc']
Dans cet article, nous avons expliqué comment générer tous les sous-ensembles possibles d'une chaîne à l'aide du module itertools en Python. Une fois que nous avons généré toutes les combinaisons possibles de caractères dans une chaîne, nous devons filtrer les chaînes qui ne sont pas un sous-ensemble de la chaîne d'origine. En conséquence, nous obtenons tous les sous-ensembles possibles de la chaîne.
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!