사전 중 파이썬으로 사전 목록을 가지고 있습니다. 이것은 부모 - 자식 관계를 나타냅니다. 주어진 한 아이, 나는 부모님을 돌려주고 싶습니다. 당신이 "하나", "오", "이"이 아이 "세"어린이 "이"을 가지고 볼 수 있듯이 "네", "세"
tree = { u'one' : [ { u'two' : [ { u'three' : [] }, { u'four' : [] } ] }, { u'five' : [ { u'six' : [] } ] } ] }
: 여기
내 모음입니다 자녀가없는 등등. 이def find_parent(search_term,collection,parent=None):
if isinstance(collection,dict):
for key,value in collection.iteritems():
if key.lower() == search_term.lower():
print "the parent of %s is %s" % (key,parent)
return parent
if isinstance(value,list):
for v in value:
find_parent(search_term,v,key)
my_child = "two"
my_parent = find_parent(my_child,tree)
그 함수의 인쇄 문은 항상 올바른 값을 인쇄합니다
는다음 코드는 올바르게 지정된 아이의 부모를 밖으로 작동합니다. 하지만 my_parent에 액세스하려고하면 해당 값은 항상 "없음"입니다. 뭔가가 여기에서 벗어나야합니다. 나는 그것을 고치는 법을 고칠 수 없다.
감사합니다.
가 "find_parent"재귀 호출에는 "반환"없습니다. – Sailesh