关于旅行人坐标计算的问题
来源:12-5 reduce
爱吃apple的阿狸
2019-11-14
#引入函数
from functools import reduce
#初始位置
start = (0, 0)
#经过的位置
steps = [(1, 3), (2, -2), (-2, 3)]
#计算结果
r = reduce(lambda current_pos, new_step: list(map(lambda x, y: x + y, current_pos, new_step)), steps, start)
#结果坐标位置
print(r)
我想到的最优雅的方法,已知初始坐标位置,求最终坐标位置,就用的老师刚教的两个函数 map和reduce.
写回答
2回答
-
7七月
2019-11-15
这个不太对吧,旅行者是一步步走的,这个能一步步的走吗。
132019-11-15 -
爱吃apple的阿狸
提问者
2019-11-15
弄成函数调用,我测试没问题
# 初始位置 start = (0, 0) #计算 def factory(pos): def go(step): #可以强制声明不是一个局部变量 nonlocal pos pos = list(map(lambda x, y: x + y, pos, step)) return pos return go tourist = factory(start) #结果坐标位置 print(tourist((1,0))) print(tourist((1,2))) print(tourist((-1,-1))) print(tourist((3,-1)))
00
相似问题