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

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

1)是DNA序列的字符串。

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

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

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

seq_similarity("ATGC","AGTT")


应该回来

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))

关于python - 两个序列中相同对象的计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46620091/

10-12 20:46