本文授权转载自机器学习算法与Python实践
禁止二次转载
大家好,我是老表
阅读文本大概需要 8 分钟
Python,你为什么要学zip,不是因为你的存储空间不够,看了就懂
Python,你为什么要学enumerate,不是在谈美剧,看了就懂
先重温一下迭代(Iteration)、迭代器对象(iterable)、迭代器(iterator )的概念:
Iteration是计算机科学的通用术语,它是指对一组元素执行一项操作,一次执行一个元素。一个很好的例子是循环 - 它适用于每个单独的项目,直到整个项目集运行完毕为止。
Iterable是可以遍历的对象(译者注:在Python中所有东西都是object, 比如说变量,容器,类),iterable是可以产生iterator的object。
iterator是表示数据流的对象,它一次返回一个元素的数据。它还会记住其在迭代过程中的位置。本质上,它控制应如何迭代可迭代对象。
map()的用法
map()函数以迭代的方式将提供的功能应用于每个项目,结果是作为迭代器的map对象。语法:
map(func, *iterables)
如果没有map(),我们将不得不编写复杂的代码以在多个项目上“循环”给定的函数。以一个整洁的小实验为例:我们有一个10个单词的列表。
test_list = ["effort", "circle", "yearly", "woolen", "accept", "lurker",
"island", "faucet", "glossy", "evader"]
我们怀疑其中一些可能是abcderian(按字母顺序出现的)。我们编写一个函数is_abecedarian来检查给定的单词是否为abcderian:
def is_abecedarian(input_word):
index = 0
for letter in input_word[0:-1]:
if ord(input_word[index]) > ord(input_word[index + 1]):
return False
else:
inde