-1
votes

Fractionnement des lignes dans une liste de lignes à l'aide d'un délimiteur

J'ai une liste de réactions chimiques et je tiens à scinder ces réactions à l'aide d'un délimiteur de sorte que je me retrouve avec les espèces impliquées dans la réaction. Y a-t-il un moyen de sortir de cela? Par exemple:

H2 + O2 = 2H2O
Na2 + Cl2 = NaCl
Ag + Cl2 =  AgCl


4 commentaires

Cela dépend de l'endroit où vous voulez aller avec le résultat. Vous recherchez simplement une solution sale rapide ou une solution appropriée pour analyser les équations de manière générale?


De plus: La gauche de gauche de l'H2O est-elle limitée dans votre produit de réaction attendue intentionnelle, ou est-ce une faute de frappe? Donc [H2, O2, H2O] ou [H2, O2, 2H2O]


Dupliqué possible de diviser les chaînes en mots avec plusieurs délimiteurs de limites de mots


Voir aussi meta.stackexchange.com/ Questions / 5234 / ...


3 Réponses :


1
votes

Vous pouvez le faire avec re.split () , scindant la chaîne sur un ou plusieurs caractères non mots : xxx

Vous pouvez utiliser re.findall () pour trouver tous les" mots " : xxx

et si vous souhaitez supprimer des numéros de tête des mots, vous pouvez utiliser un motif comme celui-ci: xxx


0 commentaires

0
votes
import re
s = "H2 + O2 = 2H2O"
print (re.split("\W+", s))

# re.split takes a regular expression on which you can split the string.
# \W represents non-word character. For ASCII, word characters are [a-zA-Z0-9_]
# + represents one or more occurrences.
In your example, it splitted the string from ' + ' and ' = '

0 commentaires

0
votes

Le str.split ne peut pas faire cela. Vous pouvez donc diviser votre chaîne de la manière suivante:

première utilise re : xxx

second est fractionné manuellement: xxx

N'oubliez pas que vous devriez rayer () vos éléments de liste (ou faire le strilreplace ("", "").


0 commentaires