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

标签 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('|')]

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

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

现在,我可以编写一个循环构造来将其转换回分隔格式,但这会很困惑。是否有更类似于 Python 的方式来编写 lists_to_dyn(lists) 函数?

最佳答案

它与您的其他方法类似:

def lists_to_dyn(lst):
    return '|'.join(';'.join(','.join(lst3) for lst3 in lst2) for lst2 in lst)

关于python - 从嵌套列表转换为分隔字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19612763/

相关文章:

python - 在异步生成器上使用 next()

python - 使用 tkinter 和 Python 3.2 在 Canvas 中插入 .jpg

python pyplot : colorbar on contourf and scatter in same plot

python - 将 Python 系统调用作为字符串结果获取

python - Python 中的 C 风格指针,这是正确的吗?

python - 在python中将字符串转换为逗号之间的几个int

python - 在随机网络x图中设置不同的节点颜色

python - 我在删除 python3 chr(8) 中的字符时遇到问题

python - 通过其属性之一的值返回列表元素

python - 电影py : Mix multiple audio files