【问题标题】:Count of Same Objects in Two Sequences两个序列中相同对象的计数
【发布时间】:2018-03-19 02:34:32
【问题描述】:

我在尝试学习 Python 3 时遇到了很大的困难,现在我正在为这个练习而苦苦挣扎。

我必须编写一个带有两个参数的函数:

1) 一个字符串,它是一个 DNA 序列。

2) 与参数一长度相同的字符串(也是一个 DNA 序列)

该函数必须返回一个浮点数(两个 DNA 序列中相同碱基的比例)。

所以,我知道我必须编写一个返回如下内容的函数:

seq_similarity("ATGC","AGTT")

应该返回

0.75

我只走了这么远,现在我什至在开始之前就被卡住了:

def sequence_similarity(seq1,seq2):
    seq1="AGTC"
    seq2="AGTT"

你能帮我开始吗?

【问题讨论】:

    标签: python dna-sequence


    【解决方案1】:

    有一个内置的

      from difflib import SequenceMatcher
    
    def similar(a, b):
        return SequenceMatcher(None, a, b).ratio()
    

    【讨论】:

      【解决方案2】:

      你可以使用sum并给它一个条件:

      sum(x==y for (x,y) in zip(seq1, seq2))
      

      这表示你的两个字符串为 3。

      然后除以长度:

      sum(x==y for (x,y) in zip(seq1, seq2))/len(seq1)
      

      如果使用 2.x,请注意整数:

      sum(x==y for (x,y) in zip(seq1, seq2))/float(len(seq1))
      

      【讨论】:

      • 非常感谢!这对我帮助最大,因为我能够看到为什么我在这方面遇到如此困难,因为它帮助我了解我应该重读书的哪些部分。
      • 练习列表理解的东西和一些内置函数 - 你会有所感觉的。
      猜你喜欢
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多