[英]“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.