当前位置: 首页 > 面试题库 >

解决python 3 vs python 2中的map函数问题

公羊光明
2023-03-14
问题内容

我对使用python进行函数式编程感兴趣,并且正在研究Mary Rose Cook的博客文章
函数式编程的实用介绍

显然,它是用python 2编写的,如下所示:

name_lengths = map(len, ["Mary", "Isla", "Sam"])

print name_lengths
# => [4, 4, 3]

在Python 3中产生以下结果:

<map object at 0x100b87a20>

我有两个问题:

  1. 为什么会这样呢?
  2. 除了将地图对象转换为列表然后使用numpy之外,还有其他解决方案吗?

问题答案:

如所述,在迁移指南中,

在Python 2中,map()返回一个列表,而在Python 3中,它返回一个迭代器。

Python 2:

将函数应用于所有iterable项,并返回结果 列表

Python 3:

返回一个迭代器,该迭代器将函数应用于所有可迭代项,并产生结果。

Python 2始终等效于list(imap(...)),Python 3允许进行惰性求值。



 类似资料:
  • 将函数应用于迭代的每一项,并返回结果列表。如果传递了额外的可迭代参数,函数必须接受这么多参数,并并行应用于所有迭代的项。 如果一个迭代比另一个迭代短,则假定它是用无项扩展的。 如果函数是,则假定身份函数;如果有多个参数,返回包含所有迭代中相应项的元组组成的列表(一种转置操作)。 可迭代参数可以是序列或任何可迭代对象;结果总是一个列表。 这在制造笛卡尔积时扮演什么角色? 把元组放在任何地方都有什么效

  • 本文向大家介绍自编函数解决pathinfo()函数处理中文问题,包括了自编函数解决pathinfo()函数处理中文问题的使用技巧和注意事项,需要的朋友参考一下 今天写程序时遇到一个小问题,pathinfo在处理中文文件名时出现的问题,如果中文在字首就出现获取的filename为空,英文在字首后面是中文的则能获取到。如下图: 于是自己写了个函数代替,代码如下: 这样问题就解决了

  • 本文向大家介绍python 解决函数返回return的问题,包括了python 解决函数返回return的问题的使用技巧和注意事项,需要的朋友参考一下 定义一个带返回值的函数,需要使用return语句在调用这个函数时返回一个目标值,当没有return时,函数默认返回None。 分析下面两个程序: out: 2017-9-25 out: 2017-9-25 None 对于第一个程序,仅仅调用了'no

  • 问题内容: 将函数应用于每个iterable并返回结果列表。如果传递了其他可迭代的参数,则函数必须采用那么多参数,并且并行地将其应用于所有可迭代的项目。 如果一个可迭代项短于另一个可迭代项,则假定它扩展为None。 如果为,则假定为身份函数;如果有多个参数,则返回一个由元组组成的列表,其中包含所有可迭代对象中的对应项(一种转置操作)。 可迭代参数可以是序列或任何可迭代对象。结果总是一个列表。 这在

  • 本文向大家介绍解决python3中自定义wsgi函数,make_server函数报错的问题,包括了解决python3中自定义wsgi函数,make_server函数报错的问题的使用技巧和注意事项,需要的朋友参考一下 这段代码在python2.7中可以运行,到python3.4中运行,就开始报错,报错内容如下: 猛地一看,这么多报错,一下就蒙圈了,各种google百度,各种查,google到时能查到

  • 本文向大家介绍PHP中in_array函数使用的问题与解决办法,包括了PHP中in_array函数使用的问题与解决办法的使用技巧和注意事项,需要的朋友参考一下 先介绍一下需求背景: 发票方式: 0=捐赠(不要问我为什么,历史原因) 1=对中寄送 2=索取 3=电子发票 现在要对用户提交的数据进行检测: 这个时候出现一个问题,如果压根就不存在$_POST[‘invoice_action']这个值,为