Python 用count()计数

Python 用count()计数,内置的range()函数需要定义范围的上界,而下限和步长值可选。count()函数与之相反,需要给出起始值和一个可选的步长,无须定义上界。

可以用该函数定义类似于enumerate()这样的函数。例如可以通过zip()函数和count()函数定义enumertae()函数,如下所示:

enumerate = lambda x, start=0: zip(count(start), x)

enumerate()函数定义为用zip()函数将count()函数与某个可迭代对象组合起来。

因此下面两个命令是等同的。

>>> list(zip(count(), iter('word')))
[(0, 'w'), (1, 'o'), (2, 'r'), (3, 'd')]
>>> list(enumerate(iter('word')))
[(0, 'w'), (1, 'o'), (2, 'r'), (3, 'd')]

二者都返回一系列二元组,元组的第一个元素是个整数计数器,第二个元素来自可迭代对象。在上面的例子中,迭代器构建于由字符组成的字符串。

zip()函数与count()函数配合使用更简单,如下所示:

zip(count(1, 3), some_iterator)

count(b, s)返回序列 {b, b+f, b+2f, b+3f,…}。上面的例子首先创建了1, 4, 7, 10, ··· 序列,然后用每个元素标记枚举器给出的值。enumerate()函数也有不足之处:不能改变迭代的步长。使用enumerate()函数实现的版本如下:

((1 + 3 * e, x) for e, x in enumerate(some_iterator))

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程