使用python结合正则表达式计算相对分子质量的问题

zyping1989 2018-01-22 10:39:34
如何使用python结合正则表达式计算相对分子质量?
比如说下图,在excel中每个单元格都是一个分子式,但是不知道每个单元格的具体的分子式,只知道他们有C,H,O,N,四种元素组成,如何计算每个单元格的相对分子质量并比较大小,将最大的相对分子质量保存到另一张表单?

现在我的难点再于,如何将分子式字符串分片保存,并对C赋值12,H赋值1,O赋值16,N赋值14,并计算相对分子质量的结果,请老师们指点下,该用哪个命令进行保存和计算,谢谢!(图片只是其中一行,数据有很多行 就不列举了)
...全文
852 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
混沌鳄鱼 2018-01-22
  • 打赏
  • 举报
回复

>>> import re
>>> data = ['O12N12C6H6', 'O2N', 'H2O', 'O2NC3H']
>>> [{x[0]: int(x[1:] if x[1:] else '1') for x in re.findall(r'([ONCH]\d*)', item)} for item in data]
[{'O': 12, 'N': 12, 'C': 6, 'H': 6}, {'O': 2, 'N': 1}, {'H': 2, 'O': 1}, {'O': 2, 'N': 1, 'C': 3, 'H': 1}]
zyping1989 2018-01-22
  • 打赏
  • 举报
回复
引用 4 楼 xpresslink 的回复:
你到底想干什么?需求是什么? 是不知道如何处理EXCLE?还是不知道如何计算?
将二者结合,遍历每行的单元格,并计算相对分子质量,并比较大小,将最大的分子质量对应的单元格保存! 现在的问题是如何结合?如何计算未知分子式的相对分子质量?
混沌鳄鱼 2018-01-22
  • 打赏
  • 举报
回复
你到底想干什么?需求是什么? 是不知道如何处理EXCLE?还是不知道如何计算?
zyping1989 2018-01-22
  • 打赏
  • 举报
回复
引用 1 楼 xpresslink 的回复:

>>> import re
>>> data = ['O12N12C6H6', 'O2N', 'H2O', 'O2NC3H']
>>> [{x[0]: int(x[1:] if x[1:] else '1') for x in re.findall(r'([ONCH]\d*)', item)} for item in data]
[{'O': 12, 'N': 12, 'C': 6, 'H': 6}, {'O': 2, 'N': 1}, {'H': 2, 'O': 1}, {'O': 2, 'N': 1, 'C': 3, 'H': 1}]
老哥,谢谢您的回答。 您还是没明白我的意思,我的图片只是举个例子,实际中我并不知道具体的分子式,也不知道有多少个分子式,只知道单元格为空时分子式就完了,可以进行下一行计算。
zyping1989 2018-01-22
  • 打赏
  • 举报
回复
老哥,谢谢您的回答。 您还是没明白我的意思,我的图片只是举个例子,实际中我并不知道具体的分子式,也不知道有多少个分子式,只知道单元格为空时分子式就完了,可以进行下一行计算。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧