今天在进行一个较为耗时的运算时

不知道程序运行了多少 等的比较焦虑

想到这种时候应该给程序加个进度显示

上万行的数据肯定不能每行都输出 那么每10%显示个进度吧

# -*- coding: UTF-8 -*-
#源列表 这里随便定义一个
list=range(3456)
#要打印的节点 10为每10%打印一次
node=range(0,len(list),len(list)/10)
#开始循环
for index,item in enumerate(list):
#打印百分比
    if node.count(index)!=0:
        persent=index*100/len(list)
        print '%d%%' % persent
#这里添加其他处理
print 'finish!'

第一行的list是代表要循环列表

主要思想是

首先用enumerate取到每行的索引号

然后制造一个抽样的列表 这里平均抽10个

然后到了列表中的进度时就打印一个百分比出来

总共多用了四行代码 循环体内多了个count和比较

 

我才学用python几天 感觉这代码很笨拙肯定有可以改进的地方

首先这个count就感觉很浪费 可是对于列表我找不到find或者exist方法

index方法搜索不到时会出错 也不好用

另外打印出来的比例也不是整数

不过是给自己看的 无所谓了

希望谁有什么更简单或者华丽的办法

可以指点我一下