假设我有一个名为" Collection":
的列表Collection = ['a','b','c','d']
从这个列表中,我想创建4个列表:
a_list = []
b_list = []
c_list = []
d_list = []
有没有办法做以下的事情来创建上面的4个列表?
for item in Collection:
item_list = []
答案 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']})