python 中sorted函数中参数key的使用方法
时间: 2024-03-10 17:47:14 浏览: 71
在 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参数
好的,关于Python中的sorted函数的key参数,它可以接受一个函数作为参数,用于指定排序时使用的比较关键字。具体来说,sorted函数会将待排序的序列中的每个元素传递给key函数,然后根据key函数的返回值进行排序。下面是一个例子:
```python
lst = ['apple', 'banana', 'orange', 'pear']
sorted_lst = sorted(lst, key=lambda x: len(x))
print(sorted_lst) # ['pear', 'apple', 'banana', 'orange']
```
在上面的例子中,我们使用了lambda表达式作为key函数,它返回每个元素的长度,因此sorted函数会根据元素的长度进行排序。
请列举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)]
```
阅读全文