Apr-28-2021, 04:37 PM
Looks like you're looking for topological sorting. If you search for that term, you can find lots of info on it, including algorithms and modules.
import toposort from collections import defaultdict data = [ ["bats", "eagles", "aligators"], ["bats", "cats", "eagles"], ["cats", "dogs", "eagles"], ] ordering = defaultdict(set) for chunk in data: for index in range(len(chunk) - 1): ordering[chunk[index + 1]].add(chunk[index]) print(toposort.toposort_flatten(ordering))
Output:['bats', 'cats', 'dogs', 'eagles', 'aligators']