假设循环过程中我必须循环某些东西并保留各种特征的计数器。在循环之前,我可以使用初始值创建这些各种计数器变量。
count1 = 0
count2 = 0
for index in range(0, 10):
count1 += 1
count2 += 2
print count1, count2
或者,我可以在第一次实际使用时创建计数器变量,在循环中使用条件语句创建变量(如果它不存在,然后变量递增)。
for index in range(0, 10):
if "count1" not in locals():
count1 = 0
if "count2" not in locals():
count2 = 0
count1 += 1
count2 += 2
print count1, count2
有更紧凑或有效的方法吗?
答案 0 :(得分:2)
不要打扰。如果需要变量,请定义它。它会以某种方式发生。
您可以使用defaultdict
,然后只需增加dict上的各种键。密钥将为您初始化。这比创建“变量变量”更好。
from collections import defaultdict
counts = defaultdict(int)
counts[1] += 1
counts[2] += 2
如果您想迭代它,请使用enumerate
。
for i, item in enumerate(data):
print(i)
这两个反例都可以通过这种方式从单个计数中轻松得出。 (它们也可以从数据的长度得出。)