python 列表降维

来源:互联网 发布:mac caj 复制粘贴 编辑:程序博客网 时间:2024/05/24 02:31

列表降维(python:3.x)

之前遇到需要使用列表降维的情况,

如:

原列表 : [[12,34],[57,86,1],[43,22,7],[1,[2,3]],6]
转化为 : [12, 34, 57, 86, 1, 43, 22, 7, 1, 2, 3, 6]

我参考了一下网友的方案(传送门),发现确实很有效且很赞,原代码如下:

def flatten(input_list):    output_list = []    while True:        if input_list == []:            break        for index, i in enumerate(input_list)            if type(i)== list:                input_list = i + input_list[index+1:]                break            else:                output_list.append(i)                input_list.pop(index)                break    return output_list

但是我想了一下,应该还有更简洁的方案:


思路:

把列表转化为字符串,直接去掉 “[““]”

最后由字符串转化为列表

    a = [[12,34],[57,86,1],[43,22,7],[1,[2,3]],6]    #把列表转为字符串    b = str(a)    #替换掉'['和']'    b = b.replace('[','')    b = b.replace(']','')    #最后转化成列表    a = list(eval(b))    print(a)

执行结果 : [12, 34, 57, 86, 1, 43, 22, 7, 1, 2, 3, 6]