如何在Python中声明多个相似的变量?

时间:2019-07-15 09:28:55

标签: python

我有几个变量,每个变量都有不同的用途,这些变量的声明方式如下:

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,列表不会减少工作量,因为我需要在不同的任务中使用所有这些变量(如果创建列表,则必须再次声明每个变量,方法是:列出索引,这是一项类似的工作)

有没有办法减少声明所有这些变量的行数?

3 个答案:

答案 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), ...