求助 Python 如何获取举例的数据结构?
data = [ '/一级目录/1二级目录/三级目录1/四级目录1',
'/一级目录/1二级目录/三级目录1/四级目录2',
'/一级目录/1二级目录/三级目录2',
'/一级目录/1二级目录/三级目录3',
'/一级目录/2二级目录/三级目录1',
'/一级目录/2二级目录/三级目录2/四级目录1',
'/一级目录/3二级目录'
]
# 最终我想获取
data1 = ['1二级目录', '2二级目录', '3二级目录']
data2 = [['三级目录1', '三级目录2', '三级目录3'], ['三级目录1', '三级目录2'], ['']]
data1 我已解决了
求助 data2这样的数据如何获取 跪谢
回答:
我猜你是根据字符串split来处理的吧,用/
进行分割就可以获取数据啦,这个其实是一个分层的关系。可以方便的构造出一个树形结构。
如果能明确最多有多少层,其实更方便处理,当然不明确也无所谓的。
python">data = [ '/一级目录/1二级目录/三级目录1/四级目录1',
'/一级目录/1二级目录/三级目录1/四级目录2',
'/一级目录/1二级目录/三级目录2',
'/一级目录/1二级目录/三级目录3',
'/一级目录/2二级目录/三级目录1',
'/一级目录/2二级目录/三级目录2/四级目录1',
'/一级目录/3二级目录'
]
rt={}
for s in data:
tOs=s.split("/")
tOs=tOs[1:] # 因为第一个是空字符,所以舍弃
print(tOs)
c=rt
for i in range(len(tOs)):
if not ( tOs[i] in c.keys() ):
c[tOs[i]]={}
c=c[tOs[i]]
data1=list(rt['一级目录'].keys())
data2=[list(rt['一级目录'][x].keys()) for x in rt['一级目录'].keys()]
print(data1)
print(data2)
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
回答:
data = [ '/一级目录/1二级目录/三级目录1/四级目录1',
'/一级目录/1二级目录/三级目录1/四级目录2',
'/一级目录/1二级目录/三级目录2',
'/一级目录/1二级目录/三级目录3',
'/一级目录/2二级目录/三级目录1',
'/一级目录/2二级目录/三级目录2/四级目录1',
'/一级目录/3二级目录'
]
groups = {}
for path in data:
dirs = path.split('/')
if len(dirs) > 2:
group = groups.setdefault(dirs[2], {})
if len(dirs) > 3:
group[dirs[3]] = None
data1, data2 = zip(*((k, (*v.keys(),)) for k, v in groups.items()))
print(data1) # ('1二级目录', '2二级目录', '3二级目录')
print(data2) # (('三级目录1', '三级目录2', '三级目录3'), ('三级目录1', '三级目录2'), ())
以上是 求助 Python 如何获取举例的数据结构? 的全部内容, 来源链接: utcz.com/p/938476.html