История изменений
Исправление Nervous, (текущая версия) :
Псс, дружище, не хочешь немного рекурсии?
tree = {
1: {'name': 'Земля', 'parent': None},
2: {'name': 'Евразия', 'parent': 1},
3: {'name': 'Китай', 'parent': 2},
4: {'name': 'Пекин', 'parent': 3},
5: {'name': 'Австралия', 'parent': 1},
6: {'name': 'Сидней', 'parent': 5}
}
def path(tree, id):
"""Returns a stringified sequence of node names along a path
in the 'tree' from a node with 'id' to a root node."""
if tree[id]['parent'] == None:
return tree[id]['name']
else:
return ', '.join([tree[id]['name'], path(tree, tree[id]['parent'])])
path(tree, 4) # 'Пекин, Китай, Евразия, Земля'
Исправление Nervous, :
Псс, дружище, не хочешь немного рекурсии?
tree = {
1: {'name': 'Земля', 'parent': None},
2: {'name': 'Евразия', 'parent': 1},
3: {'name': 'Китай', 'parent': 2},
4: {'name': 'Пекин', 'parent': 3},
5: {'name': 'Австралия', 'parent': 1},
6: {'name': 'Сидней', 'parent': 5}
}
def path(tree, id):
"""Returns a stringified sequence of node names along a path
in the 'tree' from a leaf node with 'id' to a root node."""
if tree[id]['parent'] == None:
return tree[id]['name']
else:
return ', '.join([tree[id]['name'], path(tree, tree[id]['parent'])])
path(tree, 4) # 'Пекин, Китай, Евразия, Земля'
Исправление Nervous, :
Псс, дружище, не хочешь немного рекурсии?
tree = {
1: {'name': 'Земля', 'parent': None},
2: {'name': 'Евразия', 'parent': 1},
3: {'name': 'Китай', 'parent': 2},
4: {'name': 'Пекин', 'parent': 3},
5: {'name': 'Австралия', 'parent': 1},
6: {'name': 'Сидней', 'parent': 5}
}
def path(tree, id):
"""Returns a stringified sequence of node names along a path
in the 'tree' from a leaf node with 'id' to a root node."""
if tree[id]['parent'] == None:
return tree[id]['name']
else:
return ', '.join([tree[id]['name'], path(tree[id]['parent'])])
path(tree, 4) # 'Пекин, Китай, Евразия, Земля'
Исходная версия Nervous, :
Псс, дружище, не хочешь немного рекурсии?
tree = {
1: {'name': 'Земля', 'parent': None},
2: {'name': 'Евразия', 'parent': 1},
3: {'name': 'Китай', 'parent': 2},
4: {'name': 'Пекин', 'parent': 3},
5: {'name': 'Австралия', 'parent': 1},
6: {'name': 'Сидней', 'parent': 5}
}
def path(id):
"""Returns a stringified sequence of node names along a path
in the 'tree' from a leaf node with 'id' to a root node."""
if tree[id]['parent'] == None:
return tree[id]['name']
else:
return ', '.join([tree[id]['name'], path(tree[id]['parent'])])
path(4) # 'Пекин, Китай, Евразия, Земля'