簡體   English   中英

從Python列表中的項目創建新的空列表?

[英]Create new empty lists from items within a Python list?

my_list = ['c1','c2','c3']

無論如何,基於列表中的項目創建一定數量的新列表?

結果將是:

c1 = []
c2 = []
c3 = []

您可以使用globals()做到這一點:

>>> my_list = ['c1','c2','c3']
>>> for x in my_list:
...     globals()[x] = []
...     
>>> c1
[]
>>> c2
[]
>>> c3
[]

但是最好在這里使用字典:

>>> dic = {item : []  for item in my_list}
>>> dic
{'c2': [], 'c3': [], 'c1': []}

建議不要使用列表中的名稱來創建新的全局變量,而建議使用字典:

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)替換字典dict((k, []) for k in my_list)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM