我在尝试学习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/