如何为另一个列表中的每个项目创建一个空列表(长度可变)。要创建的列表名称包含项目值。
即
['NSW','ACT','VIC']
新创建的列表
NSW_list []
ACT_list []
VIC_list []
答案 0 :(得分:2)
我不推荐这种做法。
你可能会得到所有类型的回复,告诉你如何使用setattr
和朋友 来做这件事,但实际上动态创建的变量名几乎是不变的(看看我在那里做了什么) ?)一个坏主意。
假设您已经有一个名为X_list
的变量,然后您处理包含'X'
的列表。你的变量将被覆盖。
此外,由于您无法事先知道将创建哪些变量名称,因此您将被迫使用getattr
等动态技术来访问它们。这几乎可以保证您的代码模糊不清,难以阅读。
如果您真的想通过名称访问它们,最简单的方法是使用名称作为字典的键。这是最简单的方法。
list_dict = {}
for name in ['NSW', 'ACT', 'VIC']:
list_dict[name+'_list'] = []
我的偏好是删除'_list'
后缀,只使用列表中显示的名称。
答案 1 :(得分:-1)
您可以尝试:
L=['NSW', 'ACT', 'VIC']
empty_list=[[]]*len(L)
输出:
[[], [], []]
现在,如果你想要旧的列表,那么只需压缩它们:
print(list(zip(L,empty_list)))
输出:
[('NSW', []), ('ACT', []), ('VIC', [])]