需要转动x:
X = [['A', 'B', 'C'], ['A', 'B', 'D']]
进入Y:
Y = {'A': {'B': {'C','D'}}}
更具体地说,我需要从绝对路径列表中创建一棵文件夹和文件树,如下所示:
paths = ['xyz/123/file.txt', 'abc/456/otherfile.txt']
其中,每个路径为split("/"),如['A', 'B', 'C']伪示例中所示。
split("/")
['A', 'B', 'C']
因为它代表文件和文件夹,所以显然,在同一级别(数组的索引)上,相同的名称字符串不能重复。
X = [['A', 'B', 'C'], ['A', 'B', 'D'],['W','X'],['W','Y','Z']] d = {} for path in X: current_level = d for part in path: if part not in current_level: current_level[part] = {} current_level = current_level[part]
这给我们留下了d {'A': {'B': {'C': {}, 'D': {}}}, 'W': {'Y': {'Z': {}}, 'X': {}}}。包含空字典的任何项目都是文件或目录。
{'A': {'B': {'C': {}, 'D': {}}}, 'W': {'Y': {'Z': {}}, 'X': {}}}