我已经通过列表理解创建了一个列表列表,并想通过迭代将这个列表列表分解成许多列表(每个列表的变量名称也迭代),这可能吗?至于我想要的究竟是什么意思: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 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
考虑形成一个字典,其中您的单独列表被捕获在键值对中:
>>> 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']}
这大致模仿了您正在尝试执行的“动态变量创建”,但不是所有这些列表都在您的本地命名空间中浮动,而是全部包含在一个整洁的数据结构(字典)中,称为manylists.
您也可以使用 simple dict(enumerate(listoflists, 1)),其中结果键将是从 1 开始并从那里升序的整数。
添加回答
举报
0/150
提交
取消