首页 > 解决方案 > 嵌套元组的展平

问题描述

你能展平这样的元组吗:

(42, (23, (22, (17, []))))

成为所有元素的一个元组:

(42,23,22,17)

?

标签: pythontuplesflatten

解决方案


使用递归的解决方案:

tpl = (42, (23, (22, (17, []))))

def flatten(tpl):
    if isinstance(tpl, (tuple, list)):
        for v in tpl:
            yield from flatten(v)
    else:
        yield tpl

print(tuple(flatten(tpl)))

印刷:

(42, 23, 22, 17)

推荐阅读