不知道实际分类数目,需要统计各类别的数量,采用常规方法(先计算类别数,在定义各类别数量的变量)将会非常麻烦,采用变量自动生成将能便捷的解决该类问题,或其他需要自动生成变量的场合。
具体将通过一个例子解释如何操作
在该例子中期望统计各分类的数量输出格式:
综合:4
理工:5
…
代码如下:
ls = ['综合','理工','综合','军事','农林','师范','理工','综合','理工','综合',
'理工','综合','理工','综合','军事','农林','师范']
ls_list = list(set(ls)) # 通过集合来确定类别的数量
len_list = len(ls_list)
for i in range(len_list):
exec('sub_%d = 0' % i) # 自动生成分类变量初始化为0
b = 0
for i in ls:
b += 1
# print('循环1第{}次迭代->>>>>{}'.format(b, i))
for j in range(len_list):
# print('\t','循环2第{}次迭代 —>>>>>>>{}'.format(j,ls_list[j]))
if i == ls_list[j]:
exec('sub_%d += 1' %j)
# print(eval('sub_%d' %j))
break
else:
pass
for k in range(len_list):
print(ls_list[k],':',eval('sub_%d'%k))