2017-12-13 3 views
0

정규식 findall() 함수의 결과를 목록에 전달하려고합니다.Python - 정규식 결과를 목록에 전달

#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) 

for 루프 사전을 반복하고 fobId 다른 검색을 할 때마다 생성 될 때마다 변화하고 다음과 같이 내가이 일을 사용하고있는 코드입니다. 출력은 현재 다음과 같습니다

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

을하지만, 내가이 대신 같이 할 :

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

을 내가 루프에 대한 변수 edgeloop_txt 각각의 변화와 함께 할 수있는 뭔가가 같은데요 시간 그러나 나는 그것을 피하는 방법을 확신하지 못합니다.

답변

1

지금 새 배열을 만들고 루프를 통해 매번 인쇄하는 것입니다. 이 같은 시도 : 항목을 통해

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) 

이 의지 루프, 지속적으로 total_array에 추가를하고 루프가 완료되면 전체 배열을 인쇄 할 수 있습니다.

+0

굉장! 감사! –