为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

交互式爱情 2022-06-14 16:40:44
我有一个化学反应列表,我想使用分隔符拆分这些反应,以便最终得到参与反应的物种。有没有办法解决这个问题?例如:H2 + O2 = 2H2ONa2 + Cl2 = NaClAg + Cl2 =  AgCl我想以这样一种方式拆分上述反应列表,最终得到一个具有以下内容的列表[['H2', 'O2', '2H2O'],['Na2','Cl2','NaCl'],['Ag','Cl2','AgCl']]
查看完整描述

3 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

您可以这样做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']


查看完整回答
反对 回复 2022-06-14
?
BIG阳

TA贡献1859条经验 获得超6个赞

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.

在您的示例中,它将字符串从' + '和' = '


查看完整回答
反对 回复 2022-06-14
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

str.split 不能这样做,因此您可以通过以下方式拆分字符串:


第一个是使用re:


import re


re.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(" ", ""))。


查看完整回答
反对 回复 2022-06-14
  • 3 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号