【Python系列】- Python2 和 Python3 使用Map时的差别(源码分析)

简介: 使用Python时常会发现在不同版本下Map有很大差异,那么到底怎么来区分呢?

区别说明

Python2中map结果返回的是List,一个列表,例如下图:


image.png



Python3中map结果返回是一个对象,例如下图:


image.png



Python3中map源码如下:


可以看出里面是有一个迭代器的,我们使用的时候需要用迭代器返回每个结果,或者直接list(map)强制转化为python2中实现的效果。


class map(object):

   """

   map(func, *iterables) --> map object

 

   Make an iterator that computes the function using arguments from

   each of the iterables.  Stops when the shortest iterable is exhausted.

   """

   def __getattribute__(self, *args, **kwargs): # real signature unknown

       """ Return getattr(self, name). """

       pass

   def __init__(self, func, *iterables): # real signature unknown; restored from __doc__

       pass

   def __iter__(self, *args, **kwargs): # real signature unknown

       """ Implement iter(self). """

       pass


相关文章
WK
|
7天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
63 36
|
27天前
|
IDE 开发工具 iOS开发
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
本篇将详细介绍如何在Mac系统上安装Python,并配置Python开发环境。内容涵盖Python的安装、pip包管理工具的配置与国内镜像源替换、安装与配置PyCharm开发工具,以及通过PyCharm编写并运行第一个Python程序。通过本篇的学习,用户将完成Python开发环境的搭建,为后续的Python编程工作打下基础。
158 2
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
|
28天前
|
安全 Linux 开发者
|
2月前
|
Shell Linux Python
python执行linux系统命令的几种方法(python3经典编程案例)
文章介绍了多种使用Python执行Linux系统命令的方法,包括使用os模块的不同函数以及subprocess模块来调用shell命令并处理其输出。
25 0
|
2月前
|
调度 数据库 Python
python中APScheduler的使用详解(python3经典编程案例)
文章详细讲解了在Python中使用APScheduler来安排和执行定时任务的方法,包括不同调度器的配置与使用场景。
79 0
|
2月前
|
数据挖掘 Python
用python的tushare模块分析股票案例(python3经典编程案例)
该文章提供了使用Python的tushare模块分析股票数据的案例,展示了如何获取股票数据以及进行基本的数据分析。
114 0
|
2月前
|
存储 数据库 Python
python的对象数据库ZODB的使用(python3经典编程案例)
该文章介绍了如何使用Python的对象数据库ZODB来进行数据存储,包括ZODB的基本操作如创建数据库、存储和检索对象等,并提供了示例代码。
34 0
|
2月前
|
调度 Python
python3 协程实战(python3经典编程案例)
该文章通过多个实战案例介绍了如何在Python3中使用协程来提高I/O密集型应用的性能,利用asyncio库以及async/await语法来编写高效的异步代码。
18 0
|
2月前
|
安全 Java 调度
python3多线程实战(python3经典编程案例)
该文章提供了Python3中多线程的应用实例,展示了如何利用Python的threading模块来创建和管理线程,以实现并发执行任务。
31 0
|
2月前
|
调度 Python
python3多进程实战(python3经典编程案例)
该文章提供了Python3中使用多进程的实战案例,展示了如何通过Python的标准库`multiprocessing`来创建和管理进程,以实现并发任务的执行。
71 0