返回介绍

产生偏移和元素:enumerate

发布于 2024-01-29 22:24:16 字数 930 浏览 0 评论 0 收藏 0

之前,我们讨论过通过range来产生字符串中元素的偏移值,而不是那些偏移值处的元素。不过,在有些程序中,我们两者都需要:要用的元素以及这个元素的偏移值。从传统意义上来讲,这是简单的for循环,它同时也持有一个记录当前偏移值的计数器。

可以按上面的例子做,但在最近更新的Python版本中,有个新的内置函数,名为enumerate,可以为我们做这件事。

enumerate函数返回一个生成器对象:这种对象支持下一章将要学习的迭代协议,本书下一部分会再深入讨论迭代协议。简而言之,这个对象有一个__next__方法,由下一个内置函数调用它,并且循环中每次迭代的时候它会返回一个(index,value)的元组。我们可以在for循环中通过元组赋值运算将元组解包(很像是使用zip):

就像往常一样,我们一般不会看到其作用的机制,这是因为迭代环境(包括列表解析,也就是下一章的主题)会自动执行迭代协议:

要像enumerate、zip和列表解析那样完全理解迭代的概念,我们需要继续学习下一章,以更加正式地剖析它。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文