list.sort(cmp);
时间: 2024-08-14 17:09:33 浏览: 70
`sort()`函数在Python中用于对列表进行排序,但是从Python 3.7版本开始,它不再接受`cmp`参数,因为Python引入了内置的`sorted()`函数和更直观的比较机制。如果你需要自定义排序规则,应该使用`sorted()`函数配合`key`参数。
然而,如果你指的是Python 2.x版本,`cmp`参数允许你传递一个比较函数来进行自定义排序。这个函数接受两个元素作为输入(通常是列表中的两个项目),并返回一个负数、零或正数来指示它们之间的相对顺序。如果返回负数,则第一个元素排在第二个元素前面;如果返回正数,则第一个元素排在后面;如果返回零,则保持原顺序不变。
例如,如果你想按字符串长度而非字母顺序排序,可以这样做:
```python
# Python 2.x示例
my_list = ['short', 'longest', 'medium']
def compare_length(s1, s2):
return len(s1) - len(s2)
sorted_list = sorted(my_list, cmp=compare_length)
print(sorted_list) # 输出: ['short', 'medium', 'longest']
```
请注意,Python 2.x已于2020年停止维护,推荐使用Python 3及其后的版本。在这些新版本中,你可以直接使用`sorted()`函数结合`lambda`表达式来达到相同的效果,如:
```python
my_list = ['short', 'longest', 'medium']
sorted_list = sorted(my_list, key=len)
print(sorted_list) # 输出: ['short', 'medium', 'longest']
```
阅读全文