假设我有一个名为“收藏”列表:如何从列表中提取项目并将它们用作新的列表集合的名称?
Collection = ['a','b','c','d']
从这个名单,我想创建4所列出:
a_list = []
b_list = []
c_list = []
d_list = []
有没有办法做这样的事情了如下创建以上4个列表?
for item in Collection:
item_list = []
假设我有一个名为“收藏”列表:如何从列表中提取项目并将它们用作新的列表集合的名称?
Collection = ['a','b','c','d']
从这个名单,我想创建4所列出:
a_list = []
b_list = []
c_list = []
d_list = []
有没有办法做这样的事情了如下创建以上4个列表?
for item in Collection:
item_list = []
一般情况下,它被认为是一个坏主意,使变量名的动态,这就是为什么没有容易方法来做到这在Python(及其他语言)。
你可以得到的最接近的事是通过使用字典:
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...
我认为最好的办法是定义为默认字典:
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']})
明白了!谢谢@anati:我想为你的回答和评论加个复选标记并竖起大拇指,但是我的声望太低了.. – Lam
使用*另一个容器*像一个'字典' –
@ juanpa.arrivillaga:感谢您的快速回复..你能详细说明更多吗? – Lam
使用'dict',不要动态地命名变量。您最终会使用全局名称空间字典,但是,您最好使用自己的字典。 –