旅行者小程序

来源:12-5 reduce

SakuraGaara

2018-07-06

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)))


写回答

3回答

光荣交白卷哥

2018-08-05

我简化了一下你的答案,

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)


3
4
安迪喽
这个答案不错
2020-06-03
共4条回复

这位同学很懒

2020-07-18

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)
#打印最终坐标


0
0

榴莲不流

2018-07-07

在Python3里,reduce函数被放在了functools模块里,所以需要通过引入functools模块来调用reduce函数


0
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程