-1
votes

Remplacer les éléments groupes par un élément particulier de Python3

J'ai une liste de plus de 50 éléments. Ces éléments sont des alphabets minuscules et majuscules, des nombres, des caractères spéciaux.

par exemple. xxx

Je veux échanger des éléments particuliers avec un caractère spécial. par exemple. xxx

et ainsi de suite, je dois remplacer un ensemble particulier d'éléments avec 11 caractères spéciaux sélectionnés. Comme je l'ai remplacé quelques éléments sélectionnés avec 3 des caractères spéciaux.

Comment le faire efficacement.


2 commentaires

Pourquoi PPL demande-t-il toujours comment le faire "efficacement"? Comment avez-vous essayé de le résoudre? Quel était ton goulot d'étranglement? Quel était ton problème? Où est votre exemple de reproductible minimal ?


@Patrickartner, j'avais créé de nombreuses listes, puis cherchait à la recherche quelle liste l'élément appartient et le remplaçait ensuite par le caractère spécial REEE. Ce n'était pas efficace.


5 Réponses :


1
votes

Vous devez d'abord définir vos règles de remplacement, par exemple avec un dict . En particulier, étant donné que dict permet un accès O (1) , ceci est aussi rapide que votre méthode pourra être complexité du temps: c'est la résoudre dans un Traversal unique de la liste.

Vous pouvez ensuite traverser la liste et remplacer chaque élément s'il a une règle de remplacement. xxx

Si vous souhaitez créer une nouvelle liste. de la mutation de la première, vous pouvez utiliser un exemple de compréhension de liste-compréhension xxx

exemple xxx

sortie < Pré> xxx


1 commentaires

Le Downvoter peut-il expliquer? Il n'y a aucune raison que c'est faux.



5
votes

Vous pouvez le faire à l'aide de Traduire méthode suivante: xxx

sortie: xxx

Maketrans Méthode de STR est utilisé pour la création de la table de traduction, il suffit de l'alimenter avec deux longueur égale STR S avec la première composition de clés et de secondes de valeurs. Traduire Méthode Acceptez ce tableau et remplacez les caractères en conséquence, ou laissez l'original intact si il n'y a pas de telle clé dans le tableau.

Edit: Comme indiqué par Olivier Melanã§on Il peut être Utilisé uniquement si vous souhaitez remplacer 1 caractère avec 1 caractère.


1 commentaires

C'est soigné, bien qu'il soit bon de souligner que cette méthode ne sera pas en mesure de s'étendre à une liste d'échantillons avec des éléments de plus d'un caractère.



0
votes

Essayez ceci et définissez toutes vos mapes dans le dictionnaire: xxx


0 commentaires

0
votes

Vous pouvez utiliser la fonction Carte:

EX pour le premier remplacement: p>

compact_list = ''.join(sample_list)
new_compact_list = compact_list.replace('A', '@').replace('B', '@').replace('C', '@')


0 commentaires

0
votes

Commencez par une fonction simple et affinez-la.

simple utiliserait 3 ensembles (pour le jeu de recherche est meilleur que listes) - Si les paramètres ne doivent pas nécessairement pas besoin de muter, utilisez gelengests . Utilisez une boucle simple - directement vers l'avant: xxx

sortie: xxx

pour obtenir plus de fantaisie utiliser un dictionnaire et une liste- comp: xxx

sortie: xxx

voir:


0 commentaires