Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中展平列表列表_Python_Itertools - Fatal编程技术网

如何在python中展平列表列表

如何在python中展平列表列表,python,itertools,Python,Itertools,我已经看到了一些关于如何展平表单列表的答案 [1,[1,2],[3]] print list(itertools.chain(*[1,[1,2],[3]])) 但如何将列表展平如下: [[1],[[1,2],[3]]] print list(itertools.chain(*[[1],[[1,2],[3]]])) [1, [1, 2], [3]] 我通常用这个: import collections def flatten(l): for el in l:

我已经看到了一些关于如何展平表单列表的答案

[1,[1,2],[3]]    
print list(itertools.chain(*[1,[1,2],[3]]))  
但如何将列表展平如下:

[[1],[[1,2],[3]]]

print list(itertools.chain(*[[1],[[1,2],[3]]]))
[1, [1, 2], [3]]
我通常用这个:

import collections


def flatten(l):

    for el in l:
        if isinstance(el, collections.Iterable) and not isinstance(el, str):
            for sub in flatten(el):
                yield sub
        else:
            yield el


print(list(flatten([[1],[[1,2],[3]]])))
# [1, 1, 2, 3]