Python用字典完成匹配任务

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.

匹配成功,撒花完结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值