我正在尝试定义一个函数,它接受一个数组,由带有x和y坐标的点组成,作为输入。我需要2个输出:一个数组的点按x坐标排序,另一个数组的点按y坐标排序。我在python中这样做。谢谢。
答案 0 :(得分:0)
我将假设您的阵列如下所示:
input = [(1,2), (3,4), ..., (x,y)]
您可以使用sorted
方法(内置)来完成列表排序:
x_sorted = sorted(input, key=lambda tup: tup[0])
y_sorted = sorted(input, key=lambda tup: tup[1])
lambda将分别按第一个和第二个索引对变量进行排序
答案 1 :(得分:0)
或者,您可以使用 itemgetter()
功能作为 key
参数 sorted()
功能:
from operator import itemgetter
points = [(7,3), (2,1), (4,5), (9,0)]
sorted_by_x = sorted(points) # you can add the key parameter itemgetter(0) if you want
sorted_by_y = sorted(points, key=itemgetter(1))
print("Points List: {}".format(points))
print("Sorted by X Points List: {}".format(sorted_by_x))
print("Sorted by Y Points List: {}".format(sorted_by_y))
<强>输出:强>
Points List: [(7, 3), (2, 1), (4, 5), (9, 0)]
Sorted by X Points List: [(2, 1), (4, 5), (7, 3), (9, 0)]
Sorted by Y Points List: [(9, 0), (2, 1), (7, 3), (4, 5)]