码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习1:自行实现map函数

时间:2014-11-28 09:57:15      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:for   on   代码   ef   as   size   python   学习   type   

假设Python没有提供map()函数,自行编写my_map()函数实现与map()相同的功能。以下代码在Python 2.7.8中实现。

实现代码:

def my_map(fun,num):
    i = 0
    x = list(range(len(num)))#创建一个list,长度为输入list的长度
    for n in num:#对输入list中每个变量进行遍历
         x[i] = fun(n)#调取fun函数,并将返回结果存入x中
         i = i+1
    return x#将x返回
def my_sum(n):
    return 2*n

测试代码:

print ‘my_map:‘,my_map(my_sum,[1,2,3,4,5,6,7])
print ‘map:‘,map(my_sum,[1,2,3,4,5,6,7])

输出结果:

my_map: [2, 4, 6, 8, 10, 12, 14]
map: [2, 4, 6, 8, 10, 12, 14]

易犯错误:

没有将x定义为list,也即没有x = list(range(len(num))),直接将fun(n)的值赋给x[i],这样会报出TypeError: ‘int‘ object does not support item assignment,此时x只是一个整型变量,不是一个list。

Python学习1:自行实现map函数

标签:for   on   代码   ef   as   size   python   学习   type   

原文地址:http://www.cnblogs.com/zhbzz2007/p/4127696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!