两个序列中相同对象的计数
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()
我真的很难学习 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()