繁体   English   中英

“展平”列表,其中包含列表列表的列表

[英]“Flatten” list containing lists of lists to list of lists

这个问题不同于将列表/嵌套列表列表转换为没有嵌套的列表列表 (这会产生一组非常具体的响应,不能解决我的情况)以及许多“列出列表的列表”答案。

我想列出一个列表列表,其中一些是列表的列表,并“扁平”到列表列表(不仅仅是一个列表!)。

作为一个具体的例子 ,我想从这里开始:

my_list_of_lists = [[1, 2, 3], [[9, 10], [8, 9, 10], [3, 4, 6]], [11, 12, 13]]

对此

target_list_of_lists = [[1, 2, 3], [9, 10], [8, 9, 10], [3, 4, 6], [11, 12, 13]]

(在视觉感,我想打开所有[[]]外列表到内部 []分别)。

这是一种方法:

def flatten(lst, dh=None):
    # Added so user does not need to pass output list
    if (dh is None):  
        dh = []
    for elem in lst:
        # Will not try to iterate through empty lists
        if elem and (isinstance(elem[0], list)):  
            flatten(elem, dh)
        else:
            dh.append(elem)
    return dh

my_list_of_lists = [[1, 2, 3], [[9, 10], [8, 9, 10], [3, 4, 6]], [11, 12, 13]]
target_list_of_lists = flatten(my_list_of_lists)
print(target_list_of_lists)

输出:

[[1, 2, 3], [9, 10], [8, 9, 10], [3, 4, 6], [11, 12, 13]]

这适用于任何长度和任何深度的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM