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

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 的解决方案正是我所需要的。现在我只是使用字典来访问我想要的列表。

一行是:

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

最简单的方法是使用 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']