Table des matières
Méthode 1 : Utilisez une combinaison d'itertools
Utilisez la méthode récursive
Test de mise en œuvre
Comment utiliser la méthode du backtracking
Analyse et comparaison des performances
Conclusion
Maison développement back-end Tutoriel Python Traduire toutes les concaténations possibles dans une liste de chaînes à l'aide de Python

Traduire toutes les concaténations possibles dans une liste de chaînes à l'aide de Python

Aug 26, 2023 pm 05:41 PM
翻译 连接 字符串列表

Traduire toutes les concaténations possibles dans une liste de chaînes à laide de Python

La concaténation de chaînes est une tâche courante en programmation et vous devez parfois explorer toutes les manières possibles de concaténer une liste de chaînes. Que vous effectuiez la génération de scénarios de test, des calculs de permutation ou une manipulation de chaînes, l'utilisation de la méthode fiable de Python pour générer toutes les connexions possibles peut grandement simplifier votre code.

Le fait d'avoir deux méthodes différentes offre flexibilité et performances, vous permettant de choisir la méthode qui correspond le mieux à vos besoins spécifiques, qui fournit un ensemble complet d'outils pour travailler avec des itérateurs et des fonctions combinées. Nous utiliserons la fonction combinaisons() pour générer toutes les combinaisons possibles de chaînes dans une liste. Cette approche fournit une solution concise et élégante capable de gérer des listes d'entrée de différentes longueurs, vous offrant ainsi la concaténation souhaitée.

En divisant le problème en sous-problèmes plus petits, nous pouvons systématiquement connecter chaque chaîne avec les chaînes restantes de la liste. Cette technique récursive offre une solution flexible et intuitive qui peut être adaptée à différents scénarios. Nous vous guiderons étape par étape tout au long de la mise en œuvre, en veillant à ce que vous maîtrisiez les concepts de base et puissiez les appliquer à vos propres projets.

Méthode 1 : Utilisez une combinaison d'itertools

Le module itertools en Python fournit un ensemble d'outils puissants pour travailler avec des itérateurs et des fonctions de combinaison. Nous pouvons utiliser la fonction combinaisons() dans ce module pour générer toutes les combinaisons possibles de chaînes dans la liste.

Ceci est un exemple de mise en œuvre -

import itertools

def find_all_concatenations(strings):
   all_concatenations = []
   for r in range(1, len(strings) + 1):
      combinations = itertools.combinations(strings, r)
      for combination in combinations:
         concatenation = ''.join(combination)
         all_concatenations.append(concatenation)
   return all_concatenations
Copier après la connexion

Dans cette méthode, nous parcourons différentes valeurs r de 1 à la longueur de la chaîne de la liste d'entrée. Pour chaque valeur de r, nous utilisons itertools.combinations() pour générer toutes les combinaisons de longueur r. Nous joignons ensuite chaque combinaison en utilisant ''.join() pour obtenir la jointure et l'ajouter à la liste all_concatenations.

Cette méthode est simple et claire. La fonction itertools.combinations() gère la génération des combinaisons pour nous, éliminant ainsi le besoin d'itération manuelle. En tirant parti de la puissance de la bibliothèque standard, nous pouvons obtenir les résultats souhaités avec un minimum de code.

Utilisez la méthode récursive

Une autre façon de trouver toutes les concaténations possibles est d'utiliser la récursivité. Nous pouvons concaténer de manière récursive chaque chaîne avec les chaînes restantes de la liste jusqu'à ce que toutes les combinaisons possibles soient générées.

Ceci est un exemple de mise en œuvre

def find_all_concatenations(strings):
   all_concatenations = []

   def recursive_concatenation(current, remaining):
      if not remaining:
         all_concatenations.append(current)
      else:
         for i in range(len(remaining)):
            recursive_concatenation(current + remaining[i], remaining[:i] + remaining[i+1:])

   recursive_concatenation('', strings)
   return all_concatenations
Copier après la connexion

Dans cette méthode, nous définissons une fonction d'assistance recursive_concatenation(), qui accepte deux paramètres : current (connexion actuelle) et restant (liste des chaînes restantes). Si la liste restante est vide, nous avons atteint le cas de base et ajoutons la connexion actuelle à la liste all_concatenations. Sinon, nous parcourons la liste restante, concaténons la chaîne actuelle avec chaque chaîne restante et effectuons un appel récursif avec la concaténation mise à jour et les chaînes restantes (à l'exclusion de la chaîne actuelle).

Cette approche récursive offre flexibilité et adaptabilité. Il vous permet de gérer différentes situations et d'adapter le code à vos besoins spécifiques. En décomposant le problème en sous-problèmes plus petits, nous pouvons générer systématiquement toutes les connexions possibles sans recourir à des bibliothèques externes.

Test de mise en œuvre

Testons notre implémentation à l'aide d'une liste d'exemples de chaînes

strings = ['hello', 'world', 'python']
print(find_all_concatenations(strings))
Copier après la connexion

Le résultat doit être une liste contenant toutes les concaténations de chaînes possibles

['hello', 'world', 'python', 'helloworld', 'hellopython', 'worldpython', 'helloworldpython']
Copier après la connexion

Les deux méthodes devraient produire les mêmes résultats.

Comment utiliser la méthode du backtracking

En plus des deux méthodes mentionnées précédemment, nous pouvons également utiliser l'algorithme de backtracking pour résoudre le problème de trouver toutes les concaténations possibles. Le backtracking nous permet d’explorer différents chemins et de revenir en arrière si nécessaire, ce qui en fait une méthode appropriée pour générer toutes les combinaisons.

Ceci est un exemple de mise en œuvre -

def find_all_concatenations(strings):
   all_concatenations = []

   def backtrack(current, remaining):
      if not remaining:
         all_concatenations.append(current)
      else:
         for i in range(len(remaining)):
            backtrack(current + remaining[i], remaining[:i] + remaining[i+1:])

   backtrack('', strings)
   return all_concatenations
Copier après la connexion

Dans cette méthode, nous définissons une fonction auxiliaire backtrack(), qui accepte deux paramètres : current (connexion actuelle) et restant (liste des chaînes restantes). Si la liste restante est vide, nous avons atteint le cas de base et ajoutons la connexion actuelle à la liste all_concatenations. Sinon, nous parcourons la liste restante, concaténons la chaîne actuelle avec chaque chaîne restante et effectuons un appel récursif avec la concaténation mise à jour et les chaînes restantes à l'exclusion de la chaîne actuelle.

Cette méthode de backtracking offre une alternative aux méthodes récursives et est particulièrement utile dans les situations où un plus grand contrôle sur le processus d'exploration est requis.

Analyse et comparaison des performances

Pour comprendre les caractéristiques de performance de chaque méthode, comparons leur complexité temporelle. Pour les trois méthodes évoquées, la complexité temporelle peut être analysée comme suit :

  • Méthode 1 (utilisation des combinaisons Itertools) La complexité temporelle de cette méthode dépend du nombre de combinaisons générées. À mesure que la longueur de la liste d'entrée augmente, le nombre de combinaisons augmente de façon exponentielle, donc la complexité temporelle est O(2^N), où N est la longueur de la liste.

  • Méthode 2 (Utilisation de la récursion) Dans cette méthode, nous explorons de manière récursive toutes les combinaisons possibles en concaténant chaque chaîne avec le reste des chaînes. La complexité temporelle peut être exprimée par O(N !), où N est la longueur de la liste. En effet, pour chaque chaîne, nous avons N possibilités et nous effectuons N-1 appels récursifs pour chaque possibilité.

  • Méthode 3 (en utilisant le backtracking) Semblable à la méthode 2, la complexité temporelle de la méthode de backtracking est également O(N !). Il explore toutes les combinaisons possibles en faisant marche arrière et en générant différents chemins.

Il est important de noter que la complexité spatiale des trois méthodes est également affectée par le nombre de combinaisons générées. La complexité spatiale de la méthode 1 est O(2^N) et la complexité spatiale des méthodes 2 et 3 est O(N !).

Conclusion

Nous explorons ici deux manières différentes de trouver toutes les concaténations possibles dans une liste de chaînes à l'aide de Python. La première méthode utilise la fonction itertools.combinations() pour générer toutes les combinaisons, tandis que la seconde méthode utilise la récursion pour concaténer de manière récursive des chaînes. En fonction de la taille de votre liste d'entrées et des exigences de votre application, vous pouvez choisir la méthode la mieux adaptée à vos besoins.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide complet de la connexion à la manette de jeu Win11 Guide complet de la connexion à la manette de jeu Win11 Jan 02, 2024 pm 05:26 PM

Après la mise à jour vers le dernier système Win11, de nombreux utilisateurs ne savent pas comment connecter le contrôleur pour jouer à des jeux. Pour cette raison, nous vous proposons aujourd'hui un didacticiel détaillé sur la connexion du contrôleur Win11. Si vous n'avez pas encore terminé la connexion, Voyons comment le faire fonctionner. Comment connecter le contrôleur dans Win11 : 1. Cliquez sur Démarrer ci-dessous, puis entrez les paramètres Windows pour ouvrir le « Panneau de configuration ». 2. Après avoir entré, vous pouvez trouver « Afficher les appareils et les imprimantes » pour entrer. 3. À ce stade, vous pouvez voir les informations sur le périphérique contrôleur et simplement établir la connexion. 4. Une fois la connexion réussie, un √ apparaît et la connexion est terminée.

Que dois-je faire si la page Web de traduction fournie avec le navigateur Edge est manquante ? Que dois-je faire si la page Web de traduction fournie avec le navigateur Edge est manquante ? Mar 14, 2024 pm 08:50 PM

Le navigateur Edge est livré avec une fonction de traduction qui permet aux utilisateurs de traduire à tout moment et n'importe où, ce qui apporte une grande commodité aux utilisateurs. Cependant, de nombreux utilisateurs disent que la page Web de traduction intégrée manque automatiquement. Que dois-je faire si le navigateur Edge est automatiquement installé. la page de traduction que j'ai apportée manque ? Laissez ce site vous expliquer comment restaurer la page Web traduite fournie avec le navigateur Edge si elle est manquante. Comment restaurer la page Web de traduction fournie avec le navigateur Edge manquante 1. Vérifiez si la fonction de traduction est activée : Dans le navigateur Edge, cliquez sur l'icône à trois points dans le coin supérieur droit, puis sélectionnez l'option « Paramètres ». Sur le côté gauche de la page des paramètres, sélectionnez l'option Langue. Assurez-vous que "Traduire&rd"

L'imprimante Win7 ne peut pas se connecter au code d'erreur 0x0000011b L'imprimante Win7 ne peut pas se connecter au code d'erreur 0x0000011b Dec 26, 2023 pm 10:01 PM

Plusieurs fois, nous devons utiliser un ordinateur pour nous connecter à l'imprimante pour diverses opérations d'impression, mais parfois certains utilisateurs rencontreront le problème que Win7 ne peut pas se connecter à l'imprimante 0x0000011b. Voici la solution spécifique. Win7 ne peut pas se connecter à l'imprimante 0x0000011b1. Touche de raccourci "win+r", entrez "regedit" 2. Recherchez le chemin suivant "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print" 3. Cliquez avec le bouton droit pour créer une nouvelle valeur "DWORD ( 32 bits) (D) et définissez la valeur sur 0. Nommez le nouveau projet « RpcAuthnLevelPri »

Comment connecter la balance de graisse corporelle Comment connecter la balance de graisse corporelle Mar 07, 2024 pm 04:50 PM

Comment connecter la balance de graisse corporelle Keep ? Keep dispose d'une balance de graisse corporelle spécialement conçue, mais la plupart des utilisateurs ne savent pas comment connecter la balance de graisse corporelle Keep. Voici ensuite le didacticiel graphique sur la méthode de connexion de la balance de graisse corporelle Keep. L'éditeur apporte aux utilisateurs, les utilisateurs intéressés viennent y jeter un œil ! Comment connecter la balance de graisse corporelle Keep 1. Ouvrez d'abord le logiciel Keep, accédez à la page principale et cliquez sur [Mon] dans le coin inférieur droit pour sélectionner [Matériel intelligent] 2. Ensuite, sur la page Mes appareils intelligents, cliquez sur le bouton ; Bouton [Ajouter un appareil] au milieu ; 3, puis sélectionnez l'appareil auquel vous souhaitez ajouter une interface, sélectionnez [Échelle de graisse corporelle/poids intelligente] 4. Ensuite, sur la page de sélection du modèle d'appareil, cliquez sur l'option [Conserver la balance de graisse corporelle] ; ; 5. Enfin, dans l'interface ci-dessous, enfin [Ajouter maintenant] en bas

Ne vous inquiétez pas de regarder des films sans sous-titres ! Xiaomi annonce le lancement des sous-titres en temps réel Xiaoai Translation pour la traduction japonaise et coréenne Ne vous inquiétez pas de regarder des films sans sous-titres ! Xiaomi annonce le lancement des sous-titres en temps réel Xiaoai Translation pour la traduction japonaise et coréenne Jul 22, 2024 pm 02:11 PM

Selon les informations du 22 juillet, le Weibo officiel de Xiaomi ThePaper OS a annoncé que la traduction Xiaoai a été mise à niveau. Des sous-titres en temps réel ont été ajoutés aux traductions japonaises et coréennes, et des vidéos sans sous-titres et des conférences en direct peuvent être transcrites et traduites. en temps réel. L'interprétation simultanée en face à face prend en charge la traduction dans 12 langues, dont le chinois, l'anglais, le japonais, le coréen, le russe, le portugais, l'espagnol, l'italien, le français, l'allemand, l'indonésien et l'hindi. Les fonctions ci-dessus ne prennent actuellement en charge que les trois nouveaux téléphones suivants : Xiaomi MIX Fold 4 Xiaomi MIX Flip Redmi K70 Extreme Edition Il est rapporté qu'en 2021, les sous-titres AI de Xiao Ai seront ajoutés aux traductions japonaises et coréennes. Les sous-titres AI utilisent la technologie d’interprétation simultanée développée par Xiaomi pour offrir une expérience de lecture des sous-titres plus rapide, plus stable et plus précise. 1. Selon le communiqué officiel, Xiaoai Translator ne peut pas être utilisé uniquement dans des lieux audio et vidéo

Comment traduire le navigateur Sogou Comment traduire le navigateur Sogou Feb 01, 2024 am 11:09 AM

Comment le navigateur Sogou traduit-il ? Lorsque nous utilisons habituellement le navigateur Sogou pour vérifier les informations, nous rencontrons certains sites Web qui sont tous en anglais. Parce que nous ne comprenons pas l'anglais, il est très difficile de parcourir le site Web. Cela n'a pas d'importance. vous rencontrez cette situation ! Le navigateur Sogou dispose d'un bouton de traduction intégré. En un seul clic, le navigateur Sogou traduira automatiquement l'intégralité de la page Web pour vous. Si vous ne savez pas comment l'utiliser, l'éditeur a compilé les étapes spécifiques pour le traduire sur le navigateur Sogou. Si vous ne savez pas comment, suivez-moi et continuez à lire ! Comment traduire le navigateur Sogou 1. Ouvrez le navigateur Sogou, cliquez sur l'icône de traduction dans le coin supérieur droit 2. Sélectionnez le type de texte à traduire, puis entrez le texte qui doit être traduit 3. Le navigateur Sogou traduira automatiquement le texte. à ce stade, l'opération de navigation Sogou ci-dessus est terminée. Comment traduire tous les contenus.

Que signifie le code d'erreur de l'imprimante 0x0000011b ? Que signifie le code d'erreur de l'imprimante 0x0000011b ? Feb 18, 2024 pm 10:02 PM

Que signifie 0x0000011b lors de la connexion à une imprimante ? Les utilisateurs rencontrent souvent divers codes d'erreur lorsqu'ils utilisent des ordinateurs, des ordinateurs portables ou d'autres appareils. Parmi eux, 0x0000011b est un code d’erreur de connexion d’imprimante courant. Alors, que signifie la connexion de l’imprimante 0x0000011b ? Tout d’abord, nous devons comprendre les principes de base de la connexion d’une imprimante. Lorsque nous devons imprimer des fichiers à partir de l'ordinateur, nous devons généralement connecter l'imprimante à l'ordinateur pour le transfert de données entre les deux. Cette connexion peut être établie via

Comment résoudre le problème d'échec de la traduction intégrée de Google Chrome ? Comment résoudre le problème d'échec de la traduction intégrée de Google Chrome ? Mar 13, 2024 pm 08:46 PM

Les navigateurs ont généralement des fonctions de traduction intégrées, vous n’avez donc pas à craindre de ne pas pouvoir comprendre lorsque vous naviguez sur des sites Web en langues étrangères ! Google Chrome ne fait pas exception, mais certains utilisateurs constatent que lorsqu'ils ouvrent la fonction de traduction de Google Chrome, il n'y a ni réponse ni échec. Que doivent-ils faire ? Vous pouvez essayer la dernière solution que j'ai trouvée. Didacticiel d'utilisation : cliquez sur les trois points dans le coin supérieur droit et cliquez sur Paramètres. Cliquez sur Ajouter une langue, ajoutez l'anglais et le chinois et définissez les paramètres suivants. Le paramètre anglais demande si les pages Web doivent être traduites dans cette langue. Le paramètre chinois affiche les pages Web dans cette langue et le chinois doit être déplacé vers le haut. peut être définie comme langue par défaut. Si vous ouvrez la page Web et qu'aucune option de traduction n'apparaît, cliquez avec le bouton droit et sélectionnez Traduire le chinois, OK.

See all articles