是否有一种优雅的 Pythonic 方式来计算已处理的数据? [复制]
Posted
技术标签:
【中文标题】是否有一种优雅的 Pythonic 方式来计算已处理的数据? [复制]【英文标题】:Is there an elegant, Pythonic way to count processed data? [duplicate] 【发布时间】: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
也许?
【参考方案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 中也应该有效。以上是关于是否有一种优雅的 Pythonic 方式来计算已处理的数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
是否有一种 Pythonic 的方式来跳过 for 循环中的 if 语句以使我的代码运行得更快?
是否有一种优雅的方式来存储双重关系(即用户 1 和用户 2 是朋友)