如何遍历元组列表并用它们配对?

问题描述 投票:0回答:1

我有一个这样的列表:

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 个点坐标并返回它们之间的距离。如何将各个对传递到函数中并将所有距离附加在一起?

我确实尝试将元组放入列表中,现在我被困在如何从那里向前移动以将对作为参数传递并附加距离。

python pandas list tuples append
1个回答
1
投票

你可以像这样使用列表理解:

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)
© www.soinside.com 2019 - 2024. All rights reserved.