【问题标题】:Is there an elegant, Pythonic way to count processed data? [duplicate]是否有一种优雅的 Pythonic 方式来计算已处理的数据? [复制]
【发布时间】:2015-07-10 19:19:06
【问题描述】:

我经常在循环中执行耗时的处理步骤。以下方法是我跟踪处理位置的方法。有没有更优雅的 Pythonic 方式在脚本运行时对处理数据进行计数?


n_items = [x for x in range(0,100)]

counter = 1
for r in n_items:
    # Perform some time consuming task...
    print "%s of %s items have been processed" % (counter, len(n_items))
    counter = counter + 1

【问题讨论】:

  • 我认为计数器方法没有任何问题。
  • counter += 1 也许?

标签: python loops counter


【解决方案1】:

是的,enumerate 就是为此而构建的:

for i,r in enumerate(n_items,1):
    # Perform some time consuming task
    print('{} of {} items have been processed'.format(i, len(n_items)))

第二个参数决定i的起始值,默认为0

【讨论】:

  • 传递 1 作为第二个参数。
  • 这是一个不错的选择。语法应该如下:print '{} of {} items have been processed'.format(i, len(n_items))
  • 我给出的print 语法在 Python 3 中是强制性的,在 Python 2 中也应该有效。
猜你喜欢
  • 2014-02-10
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 2022-06-16
  • 2010-10-24
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多