Python 包含 str 项的嵌套列表的总和

Python Sum of nested list with str items

鉴于:

[[[[[[[[['A']]]]],[[[[['B']]]]],['C'],[[[[['D']]]]]]

或类似的东西。复杂的嵌套列表。

我怎样才能 return:

'ABCD' or ['ABCD']

由于 sum 辅助函数,int 的递归函数非常简单,但我无法想象如何使用 str.

这是return单个字符串

的递归方法
def joinValues(i):
    if isinstance(i, list):
        return ''.join(joinValues(j) for j in i)
    else:
        return i

>>> l = [[[[[[[[['A']]]]],[[[[['B']]]]],['C'],[[[[['D']]]]]]]]]
>>> joinValues(l)
'ABCD'

您可以使用 compiler.ast 模块中的 flatten 函数来展平嵌套列表,您可以使用 join() 来连接您的角色:

>>> l=[[[[[[[[['A']]]]],[[[[['B']]]]],['C'],[[[[['D']]]]]]]]]
>>> from compiler.ast import flatten
>>> flatten(l)
['A', 'B', 'C', 'D']
>>> ''.join(flatten(l))
'ABCD'

注意,如评论中所述,此函数已从 python3 中删除,您可以在递归函数中使用 itertools.chain!或者作为更多样化的方式,您可以查看 duplicated question answers