是否有一种优雅的 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 是朋友)

在 Pandas 中是不是有一种 pythonic 的方法来做一个列联表?

是否有一种优雅的方法可以在 SQL 插入语句中反转位值?

是否有一种优雅的内置方法可以在 R 中进行模索引?

有没有一种更 Pythonic 的方式来在函数的参数上展开列表?