如何从复杂列表中提取值

时间:2014-08-21 08:12:22

标签: python list python-3.x

在Python3中

如果我有一些复杂的列表,例如:

[1, [2, 3], [4, 5, 6]]

或者看起来像:

[1, [2, [3]], 4, [5, 6]]

我确定此列表中没有重复值,但我不知道列表的确切结构是什么。

如何从这个复杂的不确定列表中提取值(递归)? 我想得到一个由这些值组成的简单列表:

[1, 2, 3, 4, 5, 6]

有没有优雅的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

示例:

>>> from compiler.ast import flatten
>>> flatten([0, [1, 2], [3, 4, [5, 6]], 7])
[0, 1, 2, 3, 4, 5, 6, 7]

试试这个:

import re

def Flatten(TheList):
    a = str(TheList)
    b,crap = re.subn(r'[\[,\]]', ' ', a)
    c = b.split()
    d = [int(x) for x in c]

    return(d)