Python中sorted()函数中的key的作用
时间: 2024-03-27 08:40:44 浏览: 43
在 Python 中,`sorted()` 函数用于对可迭代对象进行排序操作,可以接收多个参数,其中 `key` 是一个可选参数,用于指定在排序过程中使用的函数。具体来说,`key` 参数可以接收一个函数作为参数,`sorted()` 函数会使用该函数来计算每个元素的排序依据,然后根据这些排序依据对元素进行排序。
例如,如果要对一个字符串列表按照字符串长度进行排序,可以使用以下代码:
```python
lst = ['apple', 'banana', 'orange', 'pear']
sorted_lst = sorted(lst, key=lambda x: len(x))
print(sorted_lst) # ['pear', 'apple', 'banana', 'orange']
```
在这个例子中,`key` 参数接收了一个 lambda 函数 `lambda x: len(x)`,该函数的作用是计算字符串的长度,然后将字符串列表按照长度升序排序。因此,排序后的结果是 `['pear', 'apple', 'banana', 'orange']`。如果不使用 `key` 参数,则会按照默认的升序排序规则进行排序。
相关问题
python 中sorted函数中参数key的使用方法
在 Python 中, `sorted()` 函数可以用于对一个可迭代对象进行排序操作,其中有一个可选参数 `key`,用于指定排序时要使用的比较函数。
`key` 参数需要传入一个函数,这个函数接受可迭代对象中的一个元素作为输入,输出一个用于比较的值。`sorted()` 函数将根据这个比较值进行排序,而不是直接比较元素本身。
例如,假设有一个列表 `lst`,其中包含多个字符串,我们可以使用 `sorted()` 函数以字符串长度为关键字对这些字符串进行排序:
```python
lst = ['apple', 'banana', 'cherry', 'date']
sorted_lst = sorted(lst, key=len)
print(sorted_lst)
```
输出结果为:
```
['date', 'apple', 'banana', 'cherry']
```
在这个例子中,`key` 参数传入的是 `len` 函数,它会对列表中的每个字符串求出其长度,作为排序依据。
请列举python中sorted函数中的key参数的具体用法
sorted函数中的key参数可以用于指定一个函数,该函数将应用于每个元素以生成排序用的键。以下是一些key参数的具体用法:
1. 按元素长度排序:
```
lst = ['apple', 'banana', 'kiwi', 'orange']
sorted_lst = sorted(lst, key=len)
# sorted_lst: ['kiwi', 'apple', 'banana', 'orange']
```
2. 按元素大小写排序:
```
lst = ['Apple', 'banana', 'Kiwi', 'orange']
sorted_lst = sorted(lst, key=str.lower)
# sorted_lst: ['Apple', 'banana', 'Kiwi', 'orange']
```
3. 按元素的第二个值排序:
```
lst = [(2, 'apple'), (1, 'banana'), (3, 'kiwi')]
sorted_lst = sorted(lst, key=lambda x: x[1])
# sorted_lst: [(2, 'apple'), (1, 'banana'), (3, 'kiwi')]
```
4. 按元素的多个值排序:
```
lst = [(2, 'apple'), (1, 'banana'), (3, 'kiwi'), (1, 'orange')]
sorted_lst = sorted(lst, key=lambda x: (x[0], x[1]))
# sorted_lst: [(1, 'banana'), (1, 'orange'), (2, 'apple'), (3, 'kiwi')]
```
5. 按元素的属性排序:
```
class Fruit:
def __init__(self, name, price):
self.name = name
self.price = price
lst = [Fruit('apple', 2), Fruit('banana', 1), Fruit('kiwi', 3)]
sorted_lst = sorted(lst, key=lambda x: x.price)
# sorted_lst: [Fruit('banana', 1), Fruit('apple', 2), Fruit('kiwi', 3)]
```
阅读全文