自定义key
时间: 2023-08-03 19:09:36 浏览: 119
在使用 `sorted()` 函数时,可以通过 `key` 参数传入一个自定义函数,用于从每个元素中提取用于比较的值。
自定义函数接收一个参数,表示需要排序的列表中的元素,然后返回一个值作为排序依据。例如,假设我们有一个列表,其中包含多个字符串,我们想要按照字符串长度进行排序,可以使用以下代码:
```python
lst = ['apple', 'banana', 'pear', 'orange', 'grape']
sorted_lst = sorted(lst, key=lambda x: len(x))
print(sorted_lst) # ['pear', 'apple', 'grape', 'banana', 'orange']
```
在这个例子中,我们通过 `key` 参数传入了一个 `lambda` 函数,该函数返回每个元素的长度作为排序依据。因此,最终的排序结果是按照字符串长度升序排列的。
除了使用 `lambda` 函数,我们也可以定义一个普通的函数作为 `key` 参数传入,例如:
```python
def get_last_char(s):
return s[-1]
lst = ['apple', 'banana', 'pear', 'orange', 'grape']
sorted_lst = sorted(lst, key=get_last_char)
print(sorted_lst) # ['banana', 'apple', 'orange', 'pear', 'grape']
```
在这个例子中,我们定义了一个函数 `get_last_char()`,该函数接收一个字符串作为参数,返回该字符串的最后一个字符。然后我们通过 `key` 参数传入了这个函数,排序结果是按照每个字符串的最后一个字符进行排序的。