with open('point.txt', 'r') as f: lines = f.readlines() # 将每行数据表示为一个元组,并放入一个列表中 points = [] for line in lines: x, y, z = line.strip().split() points.append((float(x), float(y), float(z))) # 对列表进行排序,使用自定义的比较函数 sorted_points = sorted(points, cmp=compare_points),提示TypeError: 'cmp' is an invalid keyword argument for sort()
时间: 2024-03-19 08:46:08 浏览: 87
python: line=f.readlines()消除line中\n的方法
在 Python 3 中,`sorted()` 函数不再支持 `cmp` 参数,因此会出现 `TypeError` 异常。相反,您可以使用 `key` 参数指定一个函数,该函数将用于从列表中的每个元素中提取一个键,然后使用这些键进行排序。您可以使用以下代码替换您的 `sorted()` 函数调用:
```
sorted_points = sorted(points, key=lambda p: (p[0], p[1], p[2]))
```
这将使用 lambda 函数作为 `key` 参数,该函数从每个点元组中提取三个坐标,并以这些坐标的顺序(x,y,z)进行排序。
阅读全文