2016-11-23 53 views
0

我正在嘗試使用DNA序列做一些基本的Python,但現在我遇到了一個小問題。試圖在for循環中使用2個列表無法正常工作

這是我最初的代碼:

def positie(enzyme): 
    pos = sequentie.find(enzyme.lower()) 
    print (pos) 

def searchopdracht(enzyme): 
    if enzyme.lower() in sequentie: 
     print(enzyme, " does cut, at location:") 
     positie(enzyme) 
     print(" ") 
    else: 
     print(enzyme, "does not cut") 
     print(" ") 

for enzyme in [DdeI, BspMII, EcoRI, HindIII, TaqI]: 
    searchopdracht(enzyme) 

,它輸出以下內容:

CTGAG does cut, at location: 1022 
TCCGGA does not cut 
GAATTC does cut, at location: 1449 
AAGCTT does cut, at location: 77 
TCGA does cut, at location: 171 

一切都很好,工作,但我不想被顯示,而不是序列的酶的名稱,例如,不是「CTGAG切割,位置:1022」但「DdeI確實切割,位置:1022」

這是我試過的(但沒有給出任何輸出),但隨意給其他sugg estions:

def positie(enzyme): 
    pos = sequentie.find(enzyme.lower()) 
    print (pos) 

def searchopdracht(enzyme, enzyme_name): 
    if enzyme.lower() in sequentie: 
     print(enzyme_name," does cut, at location:") 
     positie(enzyme) 
     print(" ") 
    else: 
     print(enzyme_name, "does not cut") 
     print(" ") 

list1 = [DdeI, BspMII, EcoRI, HindIII, TaqI] 
list2 = ["DdeI", "BspMII", "EcoRI", "HindIII", "TaqI"] 

for (enzyme, enzyme_name) in (list1, list2): 
    searchopdracht(enzyme) 
+0

你的縮進是錯誤的 –

回答

0

您需要將enzyme_name作爲參數傳遞給searchopdracht(),並使用zip創建您輸入的元組對:

for enzyme, enzyme_name in zip(list1, list2): 
    searchopdracht(enzyme, enzyme_name) # added argument