0
votes

Valeurs divisées dans la liste basée sur plusieurs séparateurs Python

J'ai une chaîne dans une liste. Je veux diviser les valeurs en fonction de mon séparateur. Je ne veux utiliser aucune expression de regex. Regex l'effectue en une seule opération. Mais je veux utiliser pour les boucles et diviser () fonctions pour y parvenir. Comment rendre possible cela possible. Voici mon code: xxx

sortie requise: xxx


4 commentaires

juste à l'insu, pourquoi ne voulez-vous pas utiliser une regex?


"J'ai une chaîne dans une liste. Je veux diviser les valeurs basées sur mon séparateur. Je ne veux pas utiliser d'expression de regex." est une sorte de comme "j'ai un clou. Je veux le conduire dans un bloc de bois. Je ne veux pas utiliser de marteau."


Je veux en vérifier un par un sur la base de mon séparateur. Regex l'effectue en une seule opération. Je veux utiliser des boucles et des fonctions divisées () pour y parvenir


Vous réalisez qu'il n'y aura pas de différence observable dans le résultat, non? (Bien qu'il puisse y avoir une différence de performance, je devinerais que la regex serait plus rapide mais je ne peux pas en être sûr.)


3 Réponses :


4
votes

à l'aide d'utiliser str.replace et str.split ()

ex: xxx

sortie: xxx


1 commentaires

Bonne idée, mais cela suppose que la phrase devrait en réalité aussi être divisée à WhitSpace, qui n'est pas explicitement énoncée. (c.-à-d. Devant que 'a & b c' devenir ['a', 'b', 'c'] ou ['a', 'b c'] ?) Au lieu de cela, vous pouvez simplement remplacer tous les caractères spéciaux par le premier (ou tout autre) de cette liste, par exemple '-' , puis do divisé ('-') .



2
votes

Obtenir d'utiliser une expression régulière (qui serait em> la chose sensible à faire ici), vous pourriez par exemple. Utilisez itheroTools.groupby code> pour regrouper des caractères par s'ils sont des séparateurs ou non, puis gardez ces groupes qui ne sont pas.

aa = ['prinec-how,are_you&&smile#isfine1']
separator = ["-",",","_","&","#"]

for s in separator:
     aa = [x for a in aa for x in a.split(s) if x]
# aa: ['prinec', 'how', 'are', 'you', 'smile', 'isfine1']


0 commentaires

1
votes

Utilisation de regex xxx

à l'aide de la boucle xxx

sortie xxx


0 commentaires