如何从列表中提取项目并将其用作新列表的名称?

时间:2017-04-25 16:42:17

标签: python list

假设我有一个名为" Collection":

的列表
Collection = ['a','b','c','d']

从这个列表中,我想创建4个列表:

a_list = []
b_list = []
c_list = []
d_list = []

有没有办法做以下的事情来创建上面的4个列表?

for item in Collection:
    item_list = []

2 个答案:

答案 0 :(得分:3)

通常,将变量名称设置为动态是一个坏主意,这就是为什么在Python(以及其他语言)中没有 easy 方法来实现它的原因。

最接近的是使用词典:

c = ['a', 'b', 'c', 'd'] 
dict_with_new_lists = {item: [] for item in c}
# Now contains: {'a': [], 'c': [], 'b': [], 'd': []}

现在访问您的列表:

some_variable = 'a'
print(dict_with_new_lists[some_variable])
# etc...

答案 1 :(得分:1)

我认为最好的方法是定义默认字典:

from collections import defaultdict

collection_dict = defaultdict(list)

示例:

from collections import defaultdict

collection_dict = defaultdict(list)

Collection = ['a','b','c','d']
for elt in Collection:
    collection_dict[elt].append('sample')
print(collection_dict)

> defaultdict(<class 'list'>, {'d': ['sample'], 'a': ['sample'], 'c':
> ['sample'], 'b': ['sample']})