我有一个这样的列表:
point_list = [(54,8),(55,9),(56,10),(57,11)]
现在我想让它们成对,比如:
[(54,8),(55,9)],[(55,9),(56,10)],[(56,10),(57,11)],[(57,11),(54,8)]
我有一个函数,它接受 2 个点坐标并返回它们之间的距离。如何将各个对传递到函数中并将所有距离附加在一起?
我确实尝试将元组放入列表中,现在我被困在如何从那里向前移动以将对作为参数传递并附加距离。
你可以像这样使用列表理解:
point_list = [(54,8),(55,9),(56,10),(57,11)]
split_points = [[point_list[i], point_list[(i+1) % len(point_list)]] for i in range(len(point_list))]
print(split_points)
输出:
[[(54, 8), (55, 9)], [(55, 9), (56, 10)], [(56, 10), (57, 11)], [(57, 11), (54, 8)]]
正如@JonSG 所建议的,以前的拼接方法可以使用额外的附加:
point_list = [(54,8),(55,9),(56,10),(57,11)]
split_points = [point_list[i:i+2] for i in range(len(point_list)-1)]
split_points.append([point_list[-1], point_list[0]])
print(split_points)
要使用点对,你可以这样做:
def print_coordinates(x1, y1, x2, y2):
print(x1, x2, y1, y2)
for point1, point2 in split_points:
print_coordinates(*point1, *point2)