为二维列表的每个元素指定一个随机id

2024-09-29 23:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个2D列表

paths = [["root", "folderA", "folderB", "folderC", "folderD"], ["root", "folderA", "folderB", "folderE"]]

它表示如下所示的树结构:

root
----A (1) 
--------B (2) 
------------C (3) 
----------------D (4) 
------------E (5) 

我想为每个文件夹分配一个唯一的ID(顺序无关紧要)

但是,文件夹名称可以重叠。因此,不在同一级别的两个文件夹可以具有相同的名称。比如A和E可以有相同的名字,但C和E不能

我写了这个:

d = defaultdict(lambda: len(d))
ids = [[d[y] for y in x] for x in paths] 

但是,这会将相同的ID分配给相同的文件夹名称。 鉴于我的命名条件,有人能帮我想出其他聪明的方法吗


Tags: in文件夹名称id列表for顺序root

热门问题