/ / Snažím sa použiť 2 zoznamy v pre slučku nefunguje [duplikovať] - python, zoznam, premenné

Pokúšate sa používať 2 zoznamy v slučke, ktorá nefunguje [duplicate] - python, zoznam, premenné

Snažím sa robiť nejaký základný python so sekvenciami DNA, ale teraz sa dostávam do malého problému.

Toto je môj počiatočný kód:

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)

Ktoré výstupy sú nasledovné:

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

Všetko je v poriadku a funguje, ale chcem, aby sa názvy enzýmov zobrazovali namiesto sekvencií, napríklad, nie "CTGAG nemá strih, na mieste: 1022", ale "DdeI nemá rez, na mieste: 1022"

To je to, čo som sa snažil (ale nedáva žiadny výstup), ale neváhajte a uveďte ďalšie návrhy:

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)

odpovede:

0 pre odpoveď č. 1

Musíte prejsť enzyme_name ako argument pre searchopdracht(), a používať zip vytvoriť dvojice párov vášho vstupu:

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