Python如何用字典完成匹配任务
作者:小猪崽子~
在生物信息学领域,经常需要根据基因名称匹配其对应的编号,本文介绍了一种通过字典进行基因名称与编号匹配的方法,首先定义一个空列表存储对应编号,对于字典中不存在的基因名称,其编号默认为0
1. 问题描述
如下左图为编号与gene名称的对应关系(此处仅显示前10条),已存为字典(map_gene)
右图为我们需要去匹配的gene名称,如何根据基因名称给出对应的编号?
2. 解决方案
2.1 定义变量
首先,我们定义一个空的list来存储gene对应的编号,且因部分gene在字典map_gene中不存在,故需记录可匹配到的个数。
# 定义变量 m = [] # 存储对应编号的list t = 0 # 记录map_gene中可以匹配到的gene个数 n = 0 # 记录map_gene中不存在的gene个数
2.2 匹配gene对应的编号
# 遍历gene列表,若在map_gene中可匹配到,则保存对应编号;否则返回0. for i in range(len(gene)): if gene[i] in map_gene.keys(): m.append(map_gene[gene[i]]) t = t+1 else: m.append(0) n = n+1
2.3 将匹配好的结果导出存为csv格式
# 导出到csv data = np.vstack(gene,m) df = pd.DataFrame(data) df.to_csv('gene_match.csv')
csv文档截图如下,仅选取0-20gene展示结果,其中第18个gene rutr在gene_map中无匹配,故编号为0.
总结
匹配成功,撒花完结。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。