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

时间:2017-10-16 18:35:34

标签: python database custom-lists

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

我的嵌套列表:

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

2 个答案:

答案 0 :(得分:0)

单行将是:

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

答案 1 :(得分:0)

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