我从事数据科学工作,在清理数据帧时遇到的一个典型问题是将列从一种字符串格式转换为另一种字符串格式(特别是,我所看到的字符串是化学标识符,它们中的每一个都以一种模糊的方式代表一个分子,因此,仅仅通过查看字符串是不容易理解的)。我有许多小函数(继承自一个名为RDKit的化学库)要在格式之间进行转换,每个转换对(即输入格式和输出格式)大约有一个函数。这太多函数名了,记不住。我想编写一个包装函数,将所有函数聚合到一个更大的单个函数中,具有干净的设计和用户界面
问题是:给定输入和输出格式,从许多可能的小转换函数中选择什么样的干净方法?我应该使用存储小转换函数名称的字典吗
例如,假设我想将格式“微笑”转换为格式“inchi-keys”,我目前的做法如下:
from rdkit import Chem
def smile2inchikey(smile):
mol = Chem.MolFromSmiles(smile)
inchikey = Chem.inchi.MolToInchiKey(mol)
return inchikey
我想编写以下函数,而不是手动调用smile2inchikey
(或Chem.MolFromSmiles
和Chem.inchi.MolToInchiKey
):
def fancy_multiconverter(input_string, input_format, output_format):
pass
返回input_string
(以input_format
格式给出)到output_format
格式
也许这也是@Quinten Cabo的意思,但你可以每次转换一个单位
然后,您可以使用一个字典,其中包含与本单元进行转换的函数:
相关问题 更多 >
编程相关推荐