为了账号安全,请及时绑定邮箱和手机立即绑定

从Python列表中的项目创建新的空列表?

从Python列表中的项目创建新的空列表?

慕容3067478 2021-03-09 17:11:41
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': []}


查看完整回答
反对 回复 2021-04-01
?
白板的微信

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.c1lists.c2等等。

在我看来,这两种方法都比修改globals()或干净,locals()并且它们给您非常相似的行为。

请注意,如果您使用的是Python 2.6或更低版本,则需要将字典理解替换为dict((k, []) for k in my_list)


查看完整回答
反对 回复 2021-04-01
  • 2 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信