采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
pos=[(0,0)] def tour(pos): def go(step): nonlocal pos pos.append(step) new_pos=reduce(lambda step,pos:(step[0]+pos[0],step[1]+pos[1]), pos) return new_pos return go f=tour(pos) print(f((1,2))) print(f((2,-2))) print(f((3,1))) print(f((4,2)))
我简化了一下你的答案,
from functools import reduce
list_x = [(1, 2), (2, 3), (3, 4)] r = reduce(lambda x, y : (x[0] + y[0] , x[1]+y[1]), list_x) print(r)
Thank you~
这个lambda表达式没看懂,能稍微解释一下吗
就是处理x,y坐标,然后进行相加啊,最后生成的表达式赋值到r上啊
from functools import reduce # 导入reduce模块 start = (0,0) #建立(x,y)坐标,起始点为(0,0) step = [(1,3),(-2,5),(10,11)] #移动步数,横坐标朝x方向移动,纵坐标朝y方向移动 final = reduce(lambda now,next : (now[0] + next[0], now[1] + next[1]), step, start) #最终坐标 = reduce(lambda 现坐标,下一步:(现坐标x+下一步x),(现坐标y+下一步y),移动步数为参数列表,起始点) print(final) #打印最终坐标
在Python3里,reduce函数被放在了functools模块里,所以需要通过引入functools模块来调用reduce函数
登录后可查看更多问答,登录/注册
语法精讲/配套练习+思考题/原生爬虫实战
6.9k 7
3.1k 3
2.9k 5
4.9k 23
3.1k 19
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号