从嵌套列表转换为分隔字符串

Dan*_*ath 2 python python-3.x

免责声明:我是Python的新手.

我有一个外部服务,以分隔的字符串格式向我们发送数据.它是项目列表,最多3个级别.级别1由"|"分隔.等级2由';'分隔 级别3由','分隔.每个级别或元素可以包含0个或更多个项目.一个简化的例子是:
a,b;c,d|e||f,g|h;;

我们有一个函数将它转换为嵌套列表,这是在Python中操作它的方式.

def dyn_to_lists(dyn):  
    return [[[c for c in b.split(',')] for b in a.split(';')] for a in dyn.split('|')]
Run Code Online (Sandbox Code Playgroud)

对于上面的示例,此函数会导致以下结果:

>>> dyn = "a,b;c,d|e||f,g|h;;"
>>> print (dyn_to_lists(dyn))
[[['a', 'b'], ['c', 'd']], [['e']], [['']], [['f', 'g']], [['h'], [''], ['']]]
Run Code Online (Sandbox Code Playgroud)

现在,我可以编写一个循环结构将其转换回分隔格式,但它会很混乱.是否有类似Python的方式来编写lists_to_dyn(lists)函数?

dpa*_*ani 5

它与您的其他方法类似:

def lists_to_dyn(lst):
    return '|'.join(';'.join(','.join(lst3) for lst3 in lst2) for lst2 in lst)
Run Code Online (Sandbox Code Playgroud)