2017-12-13 5 views
0

Ich versuche, die Ergebnisse einer Regex findall() - Funktion an eine Liste übergeben. Der Code, den ich, dies zu tun bin mit ist wie folgt:Python - Übergabe Regex Ergebnis zu einer Liste

#iterate DoL, find fobIDs and use to find edgeloop IDs 
for key, val in DoL.items(): 
    fobId = val["FaceOuterBound"] 
    edgeloop_txt = re.findall(r'\n#'+str(fobId)+r'\D*#(\d+).*;', text) 
    edgeloops = [int(edgeloop) for edgeloop in edgeloop_txt] 
    print(edgeloops) 

Die for-Schleife wird durch ein Wörterbuch Iterieren und fobId jedes Mal zu ändern, die eine andere Spiel jedes Mal erzeugt. Die Ausgabe sieht derzeit wie folgt aus:

[159] 
[328] 
[37] 
[18] 
... 

Allerdings habe ich es wie folgt statt aussehen wollen:

[159, 328, 37, 18,....] 

Ich vermute, es hat etwas mit der for-Schleife die Änderung der Variable edgeloop_txt jeweils zu tun Zeit, aber ich bin mir nicht sicher, wie ich das vermeiden kann.

Antwort

1

Jetzt erstellen Sie ein neues Array und drucken es jedes Mal durch die Schleife. Probieren Sie etwas wie folgt aus:

total_array = [] 

for key, val in DoL.items(): 
    fobId = val["FaceOuterBound"] 
    edgeloop_txt = re.findall(r'\n#'+str(fobId)+r'\D*#(\d+).*;', text) 
    total_array += [int(edgeloop) for edgeloop in edgeloop_txt] 
print(total_array) 

Diese Schleife wird durch Ihre Artikel, wird kontinuierlich erweitert total_array, und drucken Sie das gesamte Array, wenn die Schleife abgeschlossen ist.

+0

Super! Vielen Dank! –