我已经通过列表理解创建了一个列表列表,并且想解开 通过迭代将列表分成许多列表(每个列表的变量名称也会迭代),这可能吗? 关于我想要的确切含义:
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文件,每一列都包含这些列表之一。
答案 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:
然后以所需的格式打印。