如何使用python的sorted()函数按特定条件对列表进行排序
发布时间:2023-05-29 05:39:14
Python的sorted()函数是一个内置函数,用于对列表或其他可迭代对象进行排序。这个函数可以根据特定条件对列表进行排序,比如按照数字大小、字母顺序、单词长度等等。在本文中,我们将介绍如何使用sorted()函数按特定条件对列表进行排序。
1. 按数字大小排序
按数字大小排序是排序中最常用的一种。我们可以通过sorted()函数的key参数来指定排序规则。比如,要按数字大小对一个列表进行排序,可以使用以下代码:
lst = [5, 3, 7, 2, 8, 4] sorted_lst = sorted(lst, key=lambda x: x) print(sorted_lst)
输出结果为:
[2, 3, 4, 5, 7, 8]
这里的lambda表达式等价于:
def sort_key(x):
return x
2. 按字母顺序排序
如果要按字母顺序对一个字符串列表进行排序,我们可以使用sorted()函数的key参数和lambda表达式,如下所示:
names = ["John", "Amy", "Bob", "Zoe"] sorted_names = sorted(names, key=lambda x: x.lower()) print(sorted_names)
输出结果为:
['Amy', 'Bob', 'John', 'Zoe']
这里的lambda表达式使用lower()函数将每个字符串全部转换为小写字母,这样就可以实现不区分大小写的排序。
3. 按字符串长度排序
如果要按字符串长度对一个字符串列表进行排序,可以使用len()函数作为key参数,如下所示:
words = ["banana", "apple", "orange", "pear"] sorted_words = sorted(words, key=len) print(sorted_words)
输出结果为:
['pear', 'apple', 'orange', 'banana']
这里的key参数指定使用len()函数来计算每个字符串的长度,从而按照字符串长度对列表进行排序。
4. 按多个条件排序
如果要按多个条件对一个列表进行排序,可以通过链式调用key参数来实现。比如,要按数值从小到大排序,如果数值相同则按字母顺序排序,可以使用以下代码:
data = [("Bob", 3), ("Amy", 2), ("Bob", 1), ("Zoe", 4), ("Amy", 3)]
sorted_data = sorted(data, key=lambda x: (x[1], x[0]))
print(sorted_data)
输出结果为:
[('Bob', 1), ('Amy', 2), ('Bob', 3), ('Amy', 3), ('Zoe', 4)]
这里的lambda表达式指定先按照数值大小排序,如果数值相同则按照字符串顺序排序。
通过这些示例,我们可以看到sorted()函数是一个强大的工具,可以非常灵活地对列表进行排序,满足不同需求的排序要求。通过合理的使用key参数和lambda表达式,我们可以轻松地实现针对不同条件的排序。
