2017-12-13 17 views
1

: 나는 검색하려면 다음 코드를 사용했다파이썬 - 새로운 키 추가 : 값 쌍은 사전 내에서 사전에 나는 현재 형식의이 종류가있는 파일에서 일부 데이터를 추출하기 위해 노력하고

#12 = ADVANCED_FACE ('NONE', (#194), #326, .F.) ; 
... 
#159 = EDGE_LOOP ('NONE', (#21, #124, #264, #145)) ; 
... 
#194 = FACE_OUTER_BOUND ('NONE', #159, .T.) ; 
... 
#326 = PLANE ('NONE', #352) ; 

을 ADVANCED_FACEs 및과 같이 사전에 추가 :이 ADVANCED_FACES을 모두 찾아이 같은 출력을 생성

DoL = {} 

    #search for advanced faces and extract IDs 
    faces_txt = re.findall(r'#(\d+) = ADVANCED_FACE.*;', text) 
    faces = [int(face) for face in faces_txt] 

    #append advanced face IDs to dict 
    for i, faceId in enumerate(faces): 
     DoL.update({"Face{}".format(i): {'AdvancedFace': [faceId]}}) 

:

Face0 = {'AdvancedFace': [12]} 
Face1 = {'AdvancedFace': [73]} 
Face2 = {'AdvancedFace': [99]} 
Face3 = {'AdvancedFace': [131]} 
Face4 = {'AdvancedFace': [181]} 
Face5 = {'AdvancedFace': [214]} 
Face6 = {'AdvancedFace': [244]} 
Face7 = {'AdvancedFace': [273]} 
Face8 = {'AdvancedFace': [330]} 
Face9 = {'AdvancedFace': [358]} 
을 같은 출력이 보일 것이다, 그래서

는 지금은 FACE_OUTER_BOUNDs을 모두 찾아 유사한 방식으로 사전에 추가 할 필요가 : 나는 다음과 같은 방법을 사용하여 시도

Face0 = {'AdvancedFace': [12], 'FaceOuterBound': [194]} 
Face1 = {'AdvancedFace': [73], 'FaceOuterBound': [53]} 
... 

하지만 말에서 오류가 발생합니다 'DICT' 'append'속성이 없습니다.

#extract face outer bound IDs from advanced face strings 
fob_txt = re.findall(r'ADVANCED_FACE.{13}#(\d+).*;', text) 
fobs = [int(fob) for fob in fob_txt] 

#append face outer bound IDs to dict 
for i, fobId in enumerate(fobs): 
    DoL["Face{}".format(i)].append({'FaceOuterBounds': (fobId)}) 
+0

분명히'DOL [ "얼굴 {} ".format (i)]'는 사전을 평가합니다. 디버깅을 한 적이 있습니까? – Carcigenicate

+0

아니요. 나는 이것이 유니에서의 나의 마지막 해의 프로젝트의 일부이기 때문에 일반적으로 프로그래밍에 익숙하지 않다. 그럼에도 불구하고 아직도 그것과 함께 그립을 얻고 있습니다. –

+0

DOL에 사전을 가지고 계시지 않습니까? 아니면 목록이 있어야합니까? – Carcigenicate

답변

0

왜 안되나요? . DOL [. "얼굴 {}"형식 (I)] 업데이트 ({ 'FaceOuterBounds': [fobId]})

어쩌면 내가 missunderstand 질문 ...