我試圖構建一個函數,返回或從字母列表(DNA鹼基)產生k-mers列表。 K代表k-mers的長度(或順序)。使用遞歸從python中的單體列表生成k-mers
我已經做了這個功能,將所需的結果打印到屏幕上。關鍵是我不能讓函數返回這些值。
def function(k,y=''):
letters=['A','C','T','G']
if k==0:
print(y)
else:
for m in letters:
kmer=m+y
function(k-1,kmer)
我雖然在返回列表或產生k-mers但沒有任何選項的工作。當我更改打印量或返回時,函數返回None。
這可能是一個概念錯誤,我只是理解遞歸函數,因爲我來自生物背景。
在此先感謝。
perfe克拉!它也適用於我!爲了更好地理解,我會更多地瞭解一下「產生」。謝謝! –
好的,完成! ;-)雖然我使用python> 3.3,但我已經修改了一下,以適應python <3.3的解決方案。 (k-1,kmer)中的項目:yield item「 –
你可以用函數(k-1,m + y) 1,m + y):例如,產量res'。 – uselpa