incoming = {'E': {'D': {'A': {},
'O': {'Co': {},
'Cu': {}
}
}
}
}
expected = [
('E', 'D', 'A'),
('E', 'D', 'O', 'Co'),
('E', 'D', 'O', 'Cu'),
]
def paths(tree, cur=()):
if not tree: # previous was a leaf, path to us is a solution
yield cur
else: # we're a node
for node, subtree in tree.iteritems():
for path in paths(subtree, cur+(node,)):
yield path
assert list(paths(incoming)) == expected
here I will gather some notes on my python use. I will give my impressions on different libs when I can give them a try to solve the problem at hand. Also I will announce some releases when I think some of my packages might be useful to others.
Search This Blog
01 November 2014
recursivity elegance
while searching for an elegant solution, I stumbled upon this by Andrew Clark
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment