Python 从主嵌套列表创建多个列表
我有一个嵌套列表,我从数据中获得,这些数据将被分成几个部分上传到数据库,但必须是单独的条目 我的嵌套列表:Python 从主嵌套列表创建多个列表,python,database,custom-lists,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. 我试着通过列表的值遍历列表,但我感到困惑,因为不是所有的主列表索引都会有多个值。如何构建
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']
那么,到目前为止您尝试了什么?我尝试了通过列表的值迭代列表,但我感到困惑,因为不是所有主列表索引都会有多个值。我希望创建多个单独的列表,但现在我可以迭代新的列表“列表”。谢谢。我从未听说过itertools,我查看了文档,解决方案正是按照我的需要工作的,访问列表1的第一个索引的示例现在写为out['list1'][0]。谢谢