2
如何访问Python中OrderedDict的上一个键和值?我正试图通过折线计算从起点到每点的距离。 self._line键是坐标对(x,y),值是从段开始的多段线的距离。 在代码中对于起始位置距离是零,对于下一个是所有多段线段的总和。 是否有更优雅的方式来做到这一点没有标志prev_x,prev_y如何访问Python中的OrderedDict以前的键和值?
self._line = OrderedDict()
prev_x, prev_y = None, None
for x, y in passed_line:
self._line[(x, y)] = 0 if prev_x is None and prev_y is None else self._line[(prev_x, prev_y)] + math.sqrt((x - prev_x) * (x - prev_x) + (y - prev_y) * (y - prev_y))
prev_x, prev_y = x, y
你可以通过使用一些小代数来清理它。请记住'NxN = N^2'。因此,您可以将'(x-prev_x)*(x-prev_x)+(y-prev_y)*(y-prev_y)'改变为(x-prev_x)** 2 +(y - prev_y)** 2' 。 – iCodez