python sorted()key=str.lower
时间: 2024-03-16 11:42:17 浏览: 20
当我们使用 `sorted()` 函数对一个列表进行排序时,我们可以通过 `key` 参数指定一个函数来生成排序用的键值,而不是默认使用列表元素本身。
如果我们想按照元素的小写形式进行排序,可以使用 `key=str.lower`。例如:
```python
>>> lst = ['apple', 'Orange', 'Banana', 'pear']
>>> sorted_lst = sorted(lst, key=str.lower)
>>> print(sorted_lst)
['apple', 'Banana', 'Orange', 'pear']
```
在上面的代码中,`key=str.lower` 表示使用 `str.lower()` 函数来生成排序用的键值,即将列表中的每个元素转换为小写形式后进行排序。这样可以忽略大小写的影响,比如 `'apple'` 和 `'Apple'` 在排序后会被视为相等。
相关问题
请列举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)]
```
python中sorted函数的用法
`sorted` 函数用于对可迭代对象进行排序。它接受两个参数:
- iterable: 要排序的可迭代对象。
- key(可选): 一个函数,用来指定排序的关键字。
它返回一个新的排序后的列表。
用法示例:
```
# 整数列表排序
>>> lst = [3, 1, 4, 2, 5]
>>> sorted(lst)
[1, 2, 3, 4, 5]
# 字符串列表排序
>>> lst = ['apple', 'banana', 'cherry']
>>> sorted(lst)
['apple', 'banana', 'cherry']
# 字典`sorted()` 是 Python 中的内置函数,用于对一个可迭代对象进行排序。
语法:sorted(iterable, key=None, reverse=False)
- iterable:需要排序的可迭代对象,如列表、元组、字符串等。
- key:排序时按照哪个关键字进行排序,默认为 None。
- reverse:排序结果是否需要反向,默认为 False。
返回值为排序后的列表,原始对象不会发生改变
例如
```
>>> a = [1, 3, 5, 2, 4]
>>> sorted(a)
[1, 2, 3, 4, 5]
>>> a
[1, 3, 5, 2, 4]
>>> b = sorted(a,reverse=True)
>>> b
[5, 4, 3, 2, 1]
```
设置key为str.lower 按照字符串小写排序
```
>>> a = ['apple', 'Banana', 'CAT']
>>> sorted(a, key=str.lower)
['apple', 'Banana', 'CAT']
```
设置key为len 按照字符串长度排序
```
>>> a = ['apple', 'Banana', 'CAT']
>>> sorted(a, key=len)
['CAT', 'apple', 'Banana']
```