python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python字典完成匹配任务

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.

总结

匹配成功,撒花完结。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文