首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两个列表中找到匹配的值?

如何在两个列表中找到匹配的值?
EN

Stack Overflow用户
提问于 2014-01-28 21:44:58
回答 1查看 159关注 0票数 0

我有两个号码列表:

代码语言:javascript
复制
parasite genome   [1,1,1,0,1,0,1,0,1,1]
host  genome      [1,1,0,0,1])

我正在努力寻找感染从寄生虫转移到宿主的可能性。传播与寄主和寄主基因组中1's的匹配成正比。在本例中,为3/10:

  • 3因1场比赛在3位的位置;及
  • 10是寄生虫基因组的长度。

我已经把程序的一部分写下来了,但是我一直困在如何算出1的比赛数上,有人能帮我一下吗?

代码语言:javascript
复制
host_genome_length = 10
parasite_genome_length = 5
maximum_infection_rate=1.0

def infection rate(host_genome, parasite_genome):
    if  host_genome_length > parasite_genome_length:
        return maximum_infection_rate *number of matches'of 1?(confused here)  / float (host_genome_length) 
    else:
        return maximum_infection_rate * number of matches'of 1?(confused here) / float (parasite_genome_length)    

print infection_rate([1,1,1,0,1,0,1,0,1,1], [1,1,0,1,1])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-28 21:48:23

您可以通过zip基因组和宿主检查同一位置的元素:

代码语言:javascript
复制
>>> genome = [1,1,1,0,1,0,1,0,1,1]
>>> host = [1,1,0,0,1]

>>> print sum(1 for g, h in zip(genome, host) if g and h)
3
>>> # or
>>> print sum(g * h for g, h in zip(genome, host))
3
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21417576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档