欢迎回来｡
我想和你们谈谈一些有用的函数, 这些函数让我们可以用函数式编程的范式来思考｡
这些函数的名称都是映射过滤器｡
闭嘴
和减少｡
这些都是非常非常有用的, 非常常见的函数, 当你是Python程序员的时候, 你会写很多｡
所以让我们来探索一下｡
首先, 我们从Map开始｡
map实际上允许我们简化代码, 将这里的代码乘以2｡
您可以看到地图, 我将其作为一个函数提供, 作为一个内置函数｡
这里我们看到我们给予第一个参数一个函数, 然后第二个参数是一个可迭代的｡
一个很好的思考方式是我们想在这里采取某种行动｡
函数, 然后是我们要执行操作的数据｡
所以在我们的例子中, 一, 二, 三｡
那么, 我们要采取什么行动呢？
一, 二, 三, 一, 二, 三
我们想乘以2, 所以我们说相乘｡
两个｡
现在我必须把它移下来, 因为我们必须先定义函数｡
像这样运行｡
所以, 与其把它打印出来, 不如这样做｡
打印｡
如果我运行它就像这样｡
我在这个内存位置得到一个map对象｡
MAP会自动给我们这个在记忆中创建的对象｡
所以为了让我们真正看到它, 我们必须把它变成这样一个列表｡
所以如果我运行这个｡
它表示int对象的行是不可迭代的｡
这是因为有了map, 我们不再需要创建一个列表, 而是需要添加到一个列表中｡
你看, 地图的好处是我给予它一些数据, 然后这些数据被这个操作｡
我们需要对map函数做的就是有一个返回的函数｡
这个零件乘以2｡
所以我们不需要所有这些代码, 我们只需要说return｡
项｡
乘以2｡
因此, 让我们将此参数更改为item｡
再看一下代码的细节｡
所以对于地图我说, 嘿, 我想让你运行这个函数｡
乘以2｡
注意这里我甚至没有括号, 因为我不需要叫它map, 为我做的｡
地图只是说, 嘿, 只要给予我函数, 我会照顾其余的｡
所以我在这里不调用函数｡
地图将为我调用函数｡
我只是说, 嘿, 当我像这样调用map时｡
我想让你在这个内存地址上使用这个函数, 并使用这个数据｡
请记住我们的函数式编程范例｡
我们有数据要处理, 所以我们把这两个分开｡
现在这个函数要取区间中的每一项.
在我们的例子中, 第一次绕项目将是一, 然后两个, 然后三个｡
然后我们需要做的就是返回我们想对那个项目产生的效果｡
在我们的情况下, 是两个｡
通过这样做, map会自动运行这个函数, 循环遍历迭代对象中的所有项, 并返回一个新的map对象,
如果我运行这个函数, 我们会把它转换成一个列表｡
六块钱买两块？
现在, 这是最妙的部分｡
如果我有, 就说我的清单, 我说, 一, 二, 三｡
我把我的名单改了一下｡
就像这样｡
最后, 还要打印我的清单｡
如果我单击“运行”｡
你会发现我的名单没变｡
记得吗？
纯函数是指不影响外部世界的函数｡
而这种方式映射允许我们创建一个全新的列表｡
这并不能改变我的清单｡
所以我的列表是不可变的, 对吗？
我们不改变它｡
它所做的就是映射函数, 处理它并为我们返回一个新的列表｡
但我们不影响外界｡
这个功能没有副作用｡
我们只是简单地将每一项乘以2, 然后创建一个新的列表｡
每次我们给予它相同的输入, 它都会产生相同的输出｡
非常, 非常酷｡
map非常有用, 因为任何时候我们都有可以迭代的东西, 我们想改变它｡
假设我们有电子邮件或用户名, 我们需要将用户名更新为全部大写字母｡
在这种情况下, 我们可以迭代并使用map函数, 将列表中的所有用户名更改为大写字母｡
MAP将是您在编程生涯中经常使用的函数之一｡
我希望你能在这里看到它是多么的干净和漂亮, 再次, 使用函数式编程范例｡
让我们继续下一个｡
让我们来谈谈过滤器｡
下一个