파이썬에서 사전에 관한 질문이 있습니다. 파이썬 : 사전을 재귀 적으로 변경하기
는이 같은 사전이 있습니다D = {'key1' : ['key3'], 'key2' : {}, 'key3' : ['key2']}
을 그리고 내 목표는 모든 값은 다음과 같이 가능한 한 대체한다는 것이다 :
After first iteration:
D = {'key1' : {'key3' : ['key2']}, 'key2' : {}, 'key3' : {'key2' : {}]}
After second iteration:
D = {'key1' : {'key3' : {'key2' : {}}}, 'key2' : {}, 'key3' : ['key2']}
는 그렇게 할 수 있습니까?
나는 이런 식으로 뭔가 생각 :for k in D.keys():
try:
if D[k] in D.keys:
D[k] = D[D[k]]
except:
pass
나는 그것이 정확하지 알고를하고 제대로 동작하지 않습니다. 아마 재귀 함수를 사용해야한다고 생각합니다. 사전의 값을 올바르게 업데이트하려면 어떻게해야합니까?
죄송합니다. 설명이 명확하지 않더라도 아이디어를 얻으시기 바랍니다.
감사합니다.
이 왜 값은을 목록에? –
값은 위에 설명한 것과 같습니다. 즉, 'key1'의 값은 'key3'요소가 하나 포함 된 목록이고 'key3'은 실제로 'key2'목록이있는 사전 키입니다. 그리고 나는 이것을 대체하고 싶습니다. 따라서 'key1'의 값은 [[ 'key2]가되어야하고 이것은 [[{}]이됩니다. 마지막으로 중첩 된 사전 (목록 없음) 만 갖고 싶습니다. 내 설명이 혼란 스럽다는 것을 알고 있지만, 일치하는지 여부와 상관없이 사전의 값을 키로 대체 할 수 있는지 생각하고있었습니다. – WonderMan
마지막 딕셔너리는 값으로 중첩 된 사전을 포함해야합니다. – WonderMan