Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import functools
- @functools.singledispatch
- def find_path_to(obj, target):
- if obj == target:
- yield ()
- @find_path_to.register(list)
- def _(seq, target):
- for idx, item in enumerate(seq):
- for path in find_path_to(item, target):
- yield (idx,) + path
- @find_path_to.register(dict)
- def _(d, target):
- for key, value in d.items():
- for path in find_path_to(value, target):
- yield (key,) + path
- data = [1, 2, 3, {4: 5, 6: 2, 7: [[[[[[2]]]]]]}]
- for path in find_path_to(data, 2):
- print(path)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement