TypeError: 'cmp' is an invalid keyword argument for sort()
时间: 2024-03-19 11:45:49 浏览: 171
在 Python 3.x 中,`cmp` 参数已经被移除,因此不能再像 Python 2.x 中那样使用 `cmp` 参数进行排序。取而代之的是,在 Python 3.x 中,可以使用 `key` 参数指定一个函数,用于在排序时进行比较。
下面是一个示例代码,演示如何使用 `key` 参数对一个包含多个三元组的列表进行排序:
```python
# 生成一个无序的三维坐标点列表
points = [(1.0, 2.0, 3.0), (2.0, 3.0, 1.0), (3.0, 1.0, 2.0), (2.0, 1.0, 3.0), (1.0, 3.0, 2.0)]
# 对列表进行排序,使用自定义的比较函数
sorted_points = sorted(points, key=lambda x: (x[0], x[1], x[2]))
# 打印排序后的结果
print(sorted_points)
```
在上面的代码中,我们使用 `sorted()` 函数对一个包含多个三元组的列表进行排序。在 `key` 参数中,我们使用一个 lambda 函数,用于指定排序时的比较方式。在这个 lambda 函数中,我们将每个三元组看作一个元素,使用元组 `(x[0], x[1], x[2])` 来表示这个元素,其中 `x[0]` 表示三元组的 x 坐标,`x[1]` 表示 y 坐标,`x[2]` 表示 z 坐标。在排序时,我们按照这个元组的大小关系进行排序,从而得到按照 x、y、z 坐标的顺序进行排序的结果。
通过这种方法,我们可以在 Python 3.x 中对列表进行排序,得到一个按照指定顺序进行排序的结果。
阅读全文