我有几个变量,每个变量都有不同的用途,这些变量的声明方式如下:
a= defaultdict(list)
b= defaultdict(list)
c= defaultdict(list)
d= defaultdict(list)
e= defaultdict(list)
f= defaultdict(list)
#and several more such variables
关于this question,列表不会减少工作量,因为我需要在不同的任务中使用所有这些变量(如果创建列表,则必须再次声明每个变量,方法是:列出索引,这是一项类似的工作)
有没有办法减少声明所有这些变量的行数?
答案 0 :(得分:2)
您可以使用以下格式为其分配:
a,b,c,d,e,f = [defaultdict(list) for i in range(6)]
通过这种方式,您正在创建defaultdict(list)
的列表,它将每个列表分配给一个变量。因此,每个变量都将独立于其他变量而初始化为defaultdict(list)
。
6
是您的变量数。
答案 1 :(得分:1)
不确定要理解的问题...但是也许您正在寻找eval
。
您可以从字符串中声明动态变量。
一个例子:
for i in range(50):
exec('my_var_%s = {"a":%s}'% (i,i))
print(my_var_1)
# {'a': 1}
我也建议您看看此discussion。 (即使用于eval
函数)。
希望有帮助!
答案 2 :(得分:1)
最短的可能是:
a,b,c,d,e,f = [defaultdict(list)]*6
这是一种简短的表达方式:
a,b,c,d,e,f = defaultdict(list), defaultdict(list), defaultdict(list), ...