通过在 python 中排序来重新排列元组

Urv*_*esh 1 python sorting arraylist

我有两个清单。第一个列表包含 X 坐标值,第二个列表包含 Y 坐标值。使用这两个列表,我想创建一个按第一个元素排序的元组。

X coordinate = [2, 3, 4, 4, 3, 2, 1, 0, 0, 1, 1, 1, 1, 2, 2, 2]
Y coordinate = [3, 3, 3, 4, 4, 4, 4, 4, 3, 3, 2, 1, 0, 0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

我希望我的输出是这样的:

[(0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 3), (4, 4)]
Run Code Online (Sandbox Code Playgroud)

为了实现这个结果,我编写了下面的代码并得到了下面提到的输出。

merged_list = list(tuple(zip(X3_coordinate, Y3_coordinate)))
merged_list.sort(key=lambda x: x[0])
merged_list
Run Code Online (Sandbox Code Playgroud)

输出:

[(0, 4), (0, 3), (1, 4), (1, 3), (1, 2), (1, 1), (1, 0), (2, 3), (2, 4), (2, 0), (2, 1), (2, 2), (3, 3), (3, 4), (4, 3), (4, 4)]
Run Code Online (Sandbox Code Playgroud)

请让我知道我做错了什么并给出一些代码建议。

azr*_*zro 5

  • 而不是list(tuple())仅仅做list()
  • 没有键排序,默认情况下会按元素排序
  • 使用sorted同时生成列表和排序
X_coordinate = [2, 3, 4, 4, 3, 2, 1, 0, 0, 1, 1, 1, 1, 2, 2, 2]
Y_coordinate = [3, 3, 3, 4, 4, 4, 4, 4, 3, 3, 2, 1, 0, 0, 1, 2]
merged_list = sorted(zip(X_coordinate, Y_coordinate))
print(merged_list)
Run Code Online (Sandbox Code Playgroud)