如何在不同长度的列表列表中删除最内层的嵌套

Mat*_*ish 4 python numpy nested-lists flatten

我正在尝试删除单个元素长度列表列表中最内层的嵌套。您是否知道一种相对简单的方法(转换为 NumPy 数组很好):

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

对此?:

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

此外,我试图为包含日期时间对象而不是示例中的整数执行此操作的真实列表。并且最初的列表集合将具有不同的长度。

或者,如果原始列表中有 nans 则很好,这样只要输出列表中不存在 nans,每个列表的长度就相同。IE

[[[1], [2], [3], [4], [5]], 
 [[6], [7], [8], [nan], [nan]], 
 [[11], [12], [nan], [nan], [nan]]]
Run Code Online (Sandbox Code Playgroud)

对此:

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

jua*_*aga 5

如果嵌套总是一致的,那么这是微不足道的:

In [2]: import itertools

In [3]: nested = [ [ [1],[2],[3],[4], [5] ], [ [6],[7],[8] ] , [ [11],[12] ] ]

In [4]: unested = [list(itertools.chain(*sub)) for sub in nested]

In [5]: unested
Out[5]: [[1, 2, 3, 4, 5], [6, 7, 8], [11, 12]]
Run Code Online (Sandbox Code Playgroud)

请注意,利用add列表的解决方案将为您提供 O(n^2) 性能,其中 n 是每个子列表中合并的子子列表的数量。