两个序列中相同对象的计数

Count of Same Objects in Two Sequences

我真的很难学习 Python 3,现在我正在为这一项练习而苦苦挣扎。

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

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

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

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

所以,我知道我必须编写一个函数来 return 像这样:

seq_similarity("ATGC","AGTT")

应该return

0.75

我才走到这一步,还没开始就卡住了:

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

你能帮我开始吗?

你可以使用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))

有一个内置的

  from difflib import SequenceMatcher

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