使用分隔符拆分行列表中的行

我有一个化学反应列表,我想使用分隔符拆分这些反应,以便最终得到参与反应的物种。有没有办法解决这个问题?例如:


H2 + O2 = 2H2O

Na2 + Cl2 = NaCl

Ag + Cl2 =  AgCl

我想以这样一种方式拆分上述反应列表,最终得到一个具有以下内容的列表[['H2', 'O2', '2H2O'],['Na2','Cl2','NaCl'],['Ag','Cl2','AgCl']]


交互式爱情
浏览 124回答 3
3回答

暮色呼如

您可以这样做re.split(),将字符串拆分为一个或多个非单词字符:>>> import re>>> re.split(r'\W+', 'H2 + O2 = 2H2O')['H2', 'O2', '2H2O']或者,您可以使用re.findall()查找所有“单词”:>>> re.findall(r'\w+', 'H2 + O2 = 2H2O')['H2', 'O2', '2H2O']如果你想从单词中去掉前导数字,你可以使用这样的模式:>>> re.findall(r'\b\d*(\w+)', 'H2 + O2 = 2H2O')['H2', 'O2', 'H2O']

BIG阳

import res = "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.在您的示例中,它将字符串从' + '和' = '

江户川乱折腾

str.split 不能这样做,因此您可以通过以下方式拆分字符串:第一个是使用re:import rere.split("+|=", "H2 + O2 = 2H2O")二是手动拆分:mendeleev = []cur = ""for char in "H2 + O2 = 2H2O":    if char in "+=":        mendeleev.append(cur)        cur = ""    else:        cur += char请记住,您应该 strip() 您的列表元素(或先执行 str.replace(" ", ""))。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python