如何在 Python 中从平面列表构建嵌套列表? [关闭]

2024-05-07

我有一个简单的列表,例如:

flat = ['1', '1-1', '1-1-1', '1-2', '2', '2-1', '2-2', '3']

我需要转换为嵌套列表,其中每个级别(破折号后跟数字)都会启动一个新的子列表,例如:

result = ['1', ['1-1', ['1-1-1'], '1-2'], '2', ['2-1', '2-2'], '3']

有什么关于如何在 Python 中做到这一点的提示吗?


def nested(flat, level=0):
    for k, it in itertools.groupby(flat, lambda x: x.split("-")[level]):
        yield next(it)
        remainder = list(nested(it, level + 1))
        if remainder:
            yield remainder

Example:

>>> list(nested(flat, 0))
['1', ['1-1', ['1-1-1'], '1-2'], '2', ['2-1', '2-2'], '3']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中从平面列表构建嵌套列表? [关闭] 的相关文章

随机推荐