2 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
您可以使用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貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
建議不要使用列表中的名稱來(lái)創(chuàng)建新的全局變量,而建議使用字典:
my_list = ['c1', 'c2', 'c3'] my_dict = {k: [] for k in my_list}
然后,您可以使用my_dict['c1']
或來(lái)訪問(wèn)這些列表之一my_dict['c2']
。
另一種解決方案是將新列表作為屬性添加到某個(gè)對(duì)象或模塊。例如:
lists = type('Lists', (object,), {k: [] for k in my_list})
在這之后,你可以使用訪問(wèn)列表lists.c1
,lists.c2
等等。
在我看來(lái),這兩種方法都比修改globals()
或干凈,locals()
并且它們給您非常相似的行為。
請(qǐng)注意,如果您使用的是Python 2.6或更低版本,則需要將字典理解替換為dict((k, []) for k in my_list)
。
添加回答
舉報(bào)