How is map() implemented internally in Python?
Posted t0nsha
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了How is map() implemented internally in Python?相关的知识,希望对你有一定的参考价值。
Python里面的map函数是怎么实现的?
How is map() implemented internally in Python?
2 Answers Bob Ippolito, Views • Bob has 6 endorsements in Python (programming language) The implementation differs greatly depending on which Python you're talking about. In Python 2.x it's written in C but the code is roughly equivalent to the following:
from itertools import izip
def map(f, lst, *lsts):
result = []
for args in izip(lst, *lsts):
result.append(f(*args))
return result
In Python 3.x the implementation is also written in C, but it returns an iterable instead of a list, so the work doesn't happen eagerly. It is equivalent to the following (since zip is also lazy in Python 3, this is a pretty good approximation of what goes on under the hood):
def map(f, lst, *lsts):
for args in zip(lst, *lsts):
yield f(*args)
To get the Python 3 behavior in Python 2, you can use
itertools.imap
. To get Python 2 behavior in Python 3, you could use
list(map(…))
.
Updated 24 Jul 2015
•
View Upvotes
Related Questions
More Answers Belowmap(function, iterable, ...)
Apply function to every item of iterable and return a list of the results.
If a function definition makes anything clear, it would look something like this:
- def map(my_function, my_list):
- result = []
- for i in my_list:
- result.append(my_function(i))
- return result
But this is just simplifying since the map() function can process more than one iterable.
If additional iterable arguments are passed, function must take that many arguments and is applied to the items from all iterables in parallel. If one iterable is shorter than another it is assumed to be extended with None items. If function is None, the identity function is assumed; if there are multiple arguments, map() returns a list consisting of tuples containing the corresponding items from all iterables (a kind of transpose operation). The iterable arguments may be a sequence or any iterable object; the result is always a list.
I'd just like to add that using the map() function seems obsolete because list comprehensions do the same work in a more comprehensible (ha!) and faster manner.
my_list = [ my_function(x) for x in my_list]
2. Built-in Functions
Understanding the Map function. python Written 24 Oct 2013 • View Upvotes
FROM: https://www.quora.com/How-is-map-implemented-internally-in-Python
以上是关于How is map() implemented internally in Python?的主要内容,如果未能解决你的问题,请参考以下文章
How to implement long running flows, sagas, business processes or similar
Think in ISP(image sensor pipe )之How to implement an effecitive AE
Lstm Cell in detail and how to implement it by pytorch
How to implement a YOLO (v3) object detector from scratch in PyTorch: Part 3翻译与总结
java 动作栏后退按钮。字体:https://stackoverflow.com/questions/10108774/how-to-implement-the-android-actionbar-
kotlin.NotImplementedError: An operation is not implemented: not implemented AlertDialog