我有一个嵌套列表,我从数据中获取这些列表,这些列表将被分成要上传到数据库的部分,但必须是单独的条目。
我的嵌套列表:
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的解决方案正是我所需要的。现在我只是使用字典来访问我想要的列表。
答案 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']