调用函数时,请使用星号*:

def mapper(func, *sequences):

result = []

if len(sequences) > 0:

minl = min(len(subseq) for subseq in sequences)

for i in range(minl):

result.append(func(*[subseq[i] for subseq in sequences]))

return result

这将产生:

>>> import operator

>>> mapper(operator.add, [1,2,4], [3,6,9])

[4, 8, 13]

通过使用星号,我们在函数调用中将可迭代项作为单独的参数解压缩.

请注意,这仍然不完全等效,因为:

>序列应该是可迭代的,而不是本身的列表,因此我们不能总是索引;和

> python-3.x中的映射结果也是可迭代的,因此不是列表.

更像python-3.x的地图函数将是:

def mapper(func, *sequences):

if not sequences:

raise TypeError('Mapper should have at least two parameters')

iters = [iter(seq) for seq in sequences]

while True:

yield func(*[next(it) for it in iters])

但是请注意,大多数Python解释器实现的映射将比Python代码更接近解释器,因此使用内置映射肯定比编写自己的映射更有效.

N.B.: it is better not to use variable names like list, set, dict, etc. since these will override (here locally) the reference to the list type. As a result a call like list(some_iterable) will no longer work.

python怎么创建函数_如何在python中创建自己的map()函数相关推荐

  1. vue 递归创建菜单_如何在Vue中创建类似中等的突出显示菜单

    vue 递归创建菜单 by Taha Shashtari 由Taha Shashtari 如何在Vue中创建类似中等的突出显示菜单 (How to Create a Medium-Like Highl ...

  2. 如何在mysql中创建过程_如何在MySQL 中创建存储过程?

    问题阐述 自MySQL 5.0 开始,MySQL 就支持存储过程.存储过程是一些被用户定义的SQL 语句集合.一个存储程序是可以被存储在服务器中的一套SQL 语句.存储过程可以被程序.触发器或另一个存 ...

  3. 如何在mysql中创建连接_如何在MySQL中创建新用户并开启远程连接访问?

    如何在MySQL中创建新用户并开启远程连接访问? 发布时间:2020-05-21 14:55:19 来源:亿速云 阅读:176 作者:鸽子 下面由mysql教程给大家介绍MySQL创建新用户并开启远程 ...

  4. python的loc函数_如何在pandas中使用loc、iloc函数进行数据索引(入门篇)

    在数据分析过程中,很多时候我们需要从数据表中提取出我们需要的部分,而这么做的前提是我们需要先索引出这一部分数据.今天我们就来探索一下,如何在pandas中使用loc函数和iloc函数索引数据. 今天我 ...

  5. vue在日历表上面创建事件_如何在R中创建颜色编码的日历

    vue在日历表上面创建事件 用颜色编码的日历可以快速简便地查看您是否实现了日常目标. 您是否符合销售或社交媒体帖子等日常业务指标? 或者,您如何实现个人目标,例如每天锻炼? 乍一看,您可以了解自己的工 ...

  6. python tkinter frame滚动条_如何在Tkinter中创建带有滚动条的LabelFrame?

    我正在使用Python和Tkinter为我正在编写的程序创建一个GUI,我遇到了一些问题. 我有三个从LabelFrame派生的对象在一个从Frame派生的对象中.LabelFrame子代之一是对应的 ...

  7. python中怎么创建配置文件_如何在Django中创建配置文件注册表单?

    我试图创建一个定制的注册表单,但是我不知道如何去做,因为我试图将默认的django注册与一个新的模型连接起来.在 这是它看起来的样子,可能是错的,但我正在考虑这样的事情.在 模型.pyclass Pr ...

  8. python 运行r语言_如何在R中运行Python

    python 运行r语言 尽管我很喜欢R,但很显然Python还是一种很棒的语言-既适用于数据科学又适用于通用计算. R用户想要在Python中做一些事情可能有充分的理由. 也许这是一个很棒的库,还没 ...

  9. hive 元数据 自定义_如何在Hive中创建自定义函数UDF及如何直接通过Impala的同步元数据重用UDF的jar文件-阿里云开发者社区...

    如何在Hive中创建自定义函数UDF及使用 如何在Impala中使用Hive的自定义函数 UDF函数开发 使用Intellij工具开发Hive的UDF函数,进行编译: 1.使用Intellij工具通过 ...

  10. html树状图右侧_如何在 Tableau 中创建控制图?

    本文作者:Jose Valero 控制图是用于研究流程如何随时间变化,并确定制造或业务流程是否在统计控制状态下的图表. 我相信这对每家公司来说都是一个有益的工具,所以在这篇文章中,我将尝试如何在 Ta ...

最新文章

  1. python tkinter选择路径控件_Python3 Tkinter选择路径功能的实现方法
  2. 2021年人工神经网络第一次作业:参考答案-1
  3. java ueditor 图片上传加水印_Ueditor编辑器上传图片加水印【亲测可用】-帝国CMS整合...
  4. SAP CRM Fiori应用My note的技术实现
  5. 获取 子文件夹 后缀_CSDN学院第一个Ptython Homework-- 递归统计文件夹大小
  6. abb机器人焊接编程视频教程_智能制造仿真编程之带导轨的ABB机器人
  7. 聊聊、Integer 封装特性
  8. 究竟云计算就业前景好不 零基础如何学云计算
  9. 泰勒公式、Jenson不等式、切比雪夫不等式
  10. nginx的多域http、https同时访问配置及http重定向https
  11. 16 张图解 | 淘宝 10年架构演进
  12. 网络安全:为大家介绍5种常见的加密算法
  13. mcnpf5输出结果_MCNP及使用.ppt
  14. matplotlib绘制蜡烛图
  15. python系统命令切换目录_windows cmd 指令 怎么切换目录
  16. 【SpringBoot】SpringBoot三层开发
  17. 安装minigui 的界面环境 mstudio
  18. mysql 的alter table操作
  19. 重启计算机一直转圈圈,W10重新启动,一直转圈圈
  20. VS+openCV之深入了解 cv::Mat

热门文章

  1. html 导航栏跟着动_“跟着导航来,现在不敢动!”浙江深山男游客吓坏,4岁儿子冻得直跺脚...
  2. linux的poll_wait函数,select() 与 poll()两个函数接口的作用
  3. c++ 方向_物理微课揭秘摩擦力的方向
  4. git实现审核功能_使用 Pull Request 功能进行代码审查
  5. c+mysql主从切换_mysql主从配置
  6. 快读快写:读入输出优化
  7. 航拍+AI︱paddlepaddle图像分割实现天空风格迁移(换天、漂浮城堡、宇宙飞船)
  8. TreeSet有序集合
  9. Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境
  10. MAC下安装NDKR10e