将包含子列表和元组的列表转换为平面列表

时间:2016-12-13 07:12:24

标签: python-2.7 python-3.x lambda

'a = [1,2,[12,5,(6,7,9)],[34,56]] lambda l:[子列表中项目子项列表中的项目]

ab = lambda a:[子列表中for项目中子列表的项目]

打印(AB的(a))'

我想要这样的输出[1,2,12,5,6,7,9,34,56]

3 个答案:

答案 0 :(得分:0)

享受:

def convert(lst):
    if all(not isinstance(e, (list, tuple)) for e in lst):
        return lst[:]
    else:
        result = []
        for e in lst:
            if isinstance(e, (list, tuple)):
                converted = convert(e)
                result.extend(converted)
            else:
                result.append(e)
        return result

答案 1 :(得分:0)

我将此视为文本处理作业。首先将传入列表转换为字符串表示形式,然后将字符串拆分为小部分,每个部分包含一个元素,最后我使用空列表接收这些新元素。这是我的代码snippt:

def simpleL(complexL):
    a =repr(complexL).split(',')
    c=[]
    for i in a:
        element =i.strip('[()] ')
        if element.isdigit():
            c.append(int(element))
    return c

答案 2 :(得分:0)

output = []
def uni_lst(lst):
    if type(lst) in [list, tuple]:
        for x in lst:
            if type(x) in [list, tuple]:
                uni_lst(x)
            else:
                output.append(x)
    return output

上面的代码将从任何类型的列表或元组中生成一个列表。