繁体   English   中英

从主嵌套列表创建多个列表

[英]creating multiple lists from a master nested list

我有一个从数据中获取的嵌套列表,这些列表将被分成多个部分以上传到数据库,但必须是单独的条目。

我的嵌套列表:

Master_List = [ a, [1,2,3], [1,2], d]

但我需要将它分成六个单独的列表,例如:

list1 = [a, 1, 1, d] 
list2 = [a, 1, 2, d]
list3 = [a, 2, 1, d]
list4 = [a, 2, 2, d]
etc.

我尝试通过列表的值遍历列表,但我很困惑,因为并非所有主列表索引都具有多个值。 如何构建这些要使用的单独列表?

当我尝试遍历列表并创建单独的列表时,它变得一团糟。

编辑:Coldspeed 的解决方案正是我所需要的。 现在我只是使用字典来访问我想要的列表。

最简单的方法是使用itertools.product

from itertools import product
out = {'list{}'.format(i) : list(l) for i, l in enumerate(product(*Master_List), 1)}

print(out)
{'list1': ['a', 1, 1, 'd'],
 'list2': ['a', 1, 2, 'd'],
 'list3': ['a', 2, 1, 'd'],
 'list4': ['a', 2, 2, 'd'],
 'list5': ['a', 3, 1, 'd'],
 'list6': ['a', 3, 2, 'd']}

不幸的是,您不能在不使用字典的情况下创建可变数量的变量。 如果您想访问listX ,您将访问out字典,如下所示:

out['listX']

单线将是:

lists = sum([[[Master_List[0], i, j, Master_List[3]] for i in Master_List[1]] for j in Master_List[2]], [])

暂无
暂无

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

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