欢迎访问宙启技术站
智能推送

如何使用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表达式,我们可以轻松地实现针对不同条件的排序。