求助 Python 如何获取举例的数据结构?

求助 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

回到顶部