相关疑难解决方法(0)

压扁不规则的列表列表

是的,我知道这个主题已经被覆盖过了(这里,这里,这里,这里),但据我所知,除了一个之外,所有解决方案都在这样的列表中失败:

L = [[[1, 2, 3], [4, 5]], 6]
Run Code Online (Sandbox Code Playgroud)

期望的输出是什么

[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

或者甚至更好,一个迭代器.我看到的唯一适用于任意嵌套的解决方案可以在这个问题中找到:

def flatten(x):
    result = []
    for el in x:
        if hasattr(el, "__iter__") and not isinstance(el, basestring):
            result.extend(flatten(el))
        else:
            result.append(el)
    return result

flatten(L)
Run Code Online (Sandbox Code Playgroud)

这是最好的型号吗?我忽略了什么吗?任何问题?

python optimization list flatten

412
推荐指数
16
解决办法
12万
查看次数

在Python中压缩任意嵌套列表的最快方法是什么?

可能重复:
在Python Flatten(不规则的)列表列表中展平浅表列表

编辑:问题不是如何做到 - 这已经在其他问题中讨论过 - 问题是,这是最快的方法?

我之前找到了解决方案,但我想知道最快的解决方案是什么来压缩包含其他任意长度列表的列表.

例如:

[1, 2, [3, 4, [5],[]], [6]]
Run Code Online (Sandbox Code Playgroud)

会成为:

[1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

可以有无限多个级别.某些列表对象可以是字符串,不能将其展平为输出列表中的连续字符.

python algorithm optimization

45
推荐指数
3
解决办法
2万
查看次数

标签 统计

optimization ×2

python ×2

algorithm ×1

flatten ×1

list ×1