【发布时间】:2016-05-03 20:17:16
【问题描述】:
我想在循环或映射步骤中将最后一个索引与第一个索引进行比较。我想要这样的东西使用'map':
def difference(angle):
return angle.next() - angle
angles = [90,180,270]
diff = list(map(difference,angles))
print(diff)
或者像这样使用'for'循环:
angles = [90,180,270]
diff = []
for angle in angles:
diff.append(angles.next()-angle)
print(diff)
它们不起作用。您不能在 int 类型上调用 .next()。
这确实有效,但看起来很乱:
angles = [90,180,270]
i = 0
diff = []
angles.append(angles[0])
while i <len(angles)-1:
diff.append(angles[i+1]-angles[i])
i += 1
print(diff)
有没有更简洁的解决方案?我觉得我不必将第一个索引附加到末尾来执行此操作。
【问题讨论】:
-
所以你想要每两个相邻列表项的差异,但是在末尾循环,以便最后一项也正好在第一项之前?
-
是的。抱歉,如果不清楚。最后一段代码做了我想要的。
标签: python-3.x