从列表列表创建许多列表

时间:2018-11-14 15:42:41

标签: python python-3.x

我已经通过列表理解创建了一个列表列表,并且想解开 通过迭代将列表分成许多列表(每个列表的变量名称也会迭代),这可能吗? 关于我想要的确切含义:

listoflists = [[1,2,3],[2,3,4],[3,4,5,6,7],["a","b"]]

,输出为:

list1=[1,2,3]
list2=[2,3,4]
list3=[3,4,5,6,7]
list4=["a","b"]

所以我不仅获得了散列的列表,而且还获得了以range(len(listoflists))进行迭代的每个列表的名称。

为了澄清我为什么需要这样做,对于我的项目,我想编写一个csv文件,每一列都包含这些列表之一。

2 个答案:

答案 0 :(得分:2)

考虑组成一个词典,在键值对中捕获单独的列表:

>>> manylists = {f'list{i}': j for i, j in enumerate(listoflists, 1)}
>>> manylists
{'list1': [1, 2, 3], 'list2': [2, 3, 4],
 'list3': [3, 4, 5, 6, 7], 'list4': ['a', 'b']}

这大致模拟了您尝试执行的“动态变量创建”,但是并不是所有这些列表都在本地名称空间中浮动,而是将它们全部包装在一个整洁的数据结构(字典)中,称为{ {1}}。

您还可以简单地使用manylists,其中得到的键将是从1开始并从那里升序的整数。

答案 1 :(得分:-2)

您可以使用一个简单的for迭代列表清单

for list in listoflists:

然后以所需的格式打印。