实现python中的map函数

假设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。

转载于:https://www.cnblogs.com/zhbzz2007/p/4127696.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值