У меня есть 2D-список
paths = [["root", "folderA", "folderB", "folderC", "folderD"], ["root", "folderA", "folderB", "folderE"]]
, который представляет собой древовидную структуру, подобную следующей:
root
----A (1)
--------B (2)
------------C (3)
----------------D (4)
------------E (5)
Я хочу присвоить уникальный идентификатор каждой папке (порядок не имеет значение).
Однако имена папок могут перекрываться. Таким образом, две папки, находящиеся на разных уровнях, могут иметь одно и то же имя. Например, A и E могут иметь одно и то же имя, но не C и E.
Я написал это:
d = defaultdict(lambda: len(d))
ids = [[d[y] for y in x] for x in paths]
Однако это присваивает идентичные идентификаторы идентичным именам папок. Может ли кто-нибудь помочь мне придумать какой-нибудь другой умный способ сделать это с учетом моего условия именования?