2016-12-08 3 views
0
def multi_search(pat_file : open, text_file : open) -> {str:[int]}: 
    answer = {(p.rstrip(),re.compile(p.rstrip())):[] for p in pat_file} 
    for num,line in enumerate(text_file,1): 
     line = line.rstrip() 
     for (p,c),lines in answer.items(): 
      if c.search(line) != None: 
       lines.append(num) 
    return {p:l for (p,c),l in answer.items()} 

enter image description hereWas macht diese Funktion (wie funktioniert es)?

die Funktion nimmt zwei Listen, aber ich bin nicht sicher, was die Funktion zurück, werden die beiden Listen in der Abbildung dargestellt.

Kann mir jemand erklären, was diese Funktion macht und wie funktioniert sie?

Antwort

0

Für jedes Muster in der ersten Datei findet die Funktion alle Zeilennummern in der zweiten Datei, die das angegebene Muster enthält. Ein Wörterbuch wird zurückgegeben, das enthält.