扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:开发者在线 来源:开发者在线 2007年8月2日
关键字:
这个版本看起来已经十分紧密,但是还有很多工作要做:让我们一点点分解它。首先,我们获取序列并创建一个迭代器——当我们拆分子列表时,可用来记录我们的位置,我们只需要遍历列表两次,每次循环并不需要从头开始。由于表推导式的原因主循环是隐含的——使用压缩可以得到每个子列表的内容,我们只需要放置列表中的恰当的项目即可。
这使用了生成器函数(也是迭代工具中的一个函数),它接受一个函数和一个序列并当函数为假时,返回序列中的项目。下面是演示该函数的示例代码:
>>> list(takewhile(lambda x: x > 3,[5,6,4,3,1,1,1,3,4]))
[5, 6, 4]
>>> list(takewhile(lambda x: x < 3,[5,6,4,3,1,1,1,3,4]))
[]
这些lambada是python中定义函数的快捷操作,了解更多关于该方面的知识,请看Python参考手册。
现在我们已经实现了一个新的版本,下面让我们测试一下它的运行速度有多快:
>>> i = time.clock(); q = pack3(long); print time.clock()-i
14.23
这个要好一些,但看起来仍有可以提高的地方。我们将它留给有兴趣的读者去完成。
仅从本文的这几个小例子,我们就可以了解迭代器的使用并对python发行中的库函数有一个较好的理解,像迭代工具,它可以使你更高效,无论是代码编写的时间方面还是代码运行时间方面。在迭代工具模型中有很多函数,这里我们只介绍了14个函数中的3个,要想更全面地了解这些函数,请看Python库文档页面。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者