my_list = ['c1','c2','c3']无论如何,基于列表中的项目创建一定数量的新列表?结果将是:c1 = []c2 = []c3 = []
2 回答
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
您可以使用globals():
>>> my_list = ['c1','c2','c3']
>>> for x in my_list:
... globals()[x] = []
...
>>> c1
[]
>>> c2
[]
>>> c3
[]
但最好在此处使用dict:
>>> dic = {item : [] for item in my_list}
>>> dic
{'c2': [], 'c3': [], 'c1': []}
白板的微信
TA贡献1883条经验 获得超3个赞
建议不要使用列表中的名称来创建新的全局变量,而建议使用字典:
my_list = ['c1', 'c2', 'c3'] my_dict = {k: [] for k in my_list}
然后,您可以使用my_dict['c1']
或来访问这些列表之一my_dict['c2']
。
另一种解决方案是将新列表作为属性添加到某个对象或模块。例如:
lists = type('Lists', (object,), {k: [] for k in my_list})
在这之后,你可以使用访问列表lists.c1
,lists.c2
等等。
在我看来,这两种方法都比修改globals()
或干净,locals()
并且它们给您非常相似的行为。
请注意,如果您使用的是Python 2.6或更低版本,则需要将字典理解替换为dict((k, []) for k in my_list)
。
添加回答
举报
0/150
提交
取消