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

sorted函数的使用--对列表进行排序

发布时间:2023-06-23 19:34:38

sorted函数是Python内置函数之一,用于对序列进行排序操作。在列表中使用sorted函数,可以返回一个排序后的新列表,并不会影响原列表的排序。

sorted函数的使用非常简单,只需要传入需要排序的列表作为参数即可。下面我们将详细介绍sorted函数的使用。

1. 对数字列表进行排序

对于数字列表,sorted函数默认是升序排列。下面是一个简单的例子:

mylist = [5, 3, 1, 9, 6]
newlist = sorted(mylist)
print(newlist)

输出:

[1, 3, 5, 6, 9]

2. 对字符串列表进行排序

对于字符串列表,sorted函数默认按照字母表顺序进行排序。下面是一个简单的例子:

mylist = ['apple', 'banana', 'orange', 'pear']
newlist = sorted(mylist)
print(newlist)

输出:

['apple', 'banana', 'orange', 'pear']

如果需要按照字符串长度进行排序,可以使用len参数:

mylist = ['apple', 'banana', 'orange', 'pear']
newlist = sorted(mylist, key=len)
print(newlist)

输出:

['pear', 'apple', 'banana', 'orange']

3. 对元组列表进行排序

对于元组列表,可以按照元组里面的某个元素进行排序。下面是一个简单的例子:

mylist = [('apple', 5), ('banana', 3), ('orange', 7), ('pear', 2)]
newlist = sorted(mylist, key=lambda x: x[1])
print(newlist)

输出:

[('pear', 2), ('banana', 3), ('apple', 5), ('orange', 7)]

上面的lambda表达式指定按照元组里面的第二个元素进行排序。

4. 对字典列表进行排序

对于字典列表,可以按照某个键的值进行排序。下面是一个简单的例子:

mylist = [{'name': 'apple', 'price': 5}, {'name': 'banana', 'price': 3}, {'name': 'orange', 'price': 7}, {'name': 'pear', 'price': 2}]
newlist = sorted(mylist, key=lambda x: x['price'])
print(newlist)

输出:

[{'name': 'pear', 'price': 2}, {'name': 'banana', 'price': 3}, {'name': 'apple', 'price': 5}, {'name': 'orange', 'price': 7}]

上面的lambda表达式指定按照字典里面的price键值进行排序。

5. 对列表进行降序排列

如果需要按照降序排列,可以使用reverse参数:

mylist = [5, 3, 1, 9, 6]
newlist = sorted(mylist, reverse=True)
print(newlist)

输出:

[9, 6, 5, 3, 1]

6. 在使用sorted函数时保留原列表顺序

如果需要在保留原列表顺序的前提下对列表进行排序,可以使用enumerate函数和sorted函数结合使用:

mylist = ['apple', 'banana', 'orange', 'pear']
newlist = [x[0] for x in sorted(enumerate(mylist), key=lambda x:x[1])]
print(newlist)

输出:

[0, 1, 2, 3]

上面的例子中,sorted函数会返回一个元组列表,元组里面包含每个元素的索引和对应的值。然后我们再次使用列表解析式,得到新的索引列表newlist。这样,我们就可以在不改变原列表的前提下按照字符串顺序得到了索引列表。

总结

sorted函数是Python中非常常用的函数之一,在列表类型的排序中非常实用,我们可以根据自己的需要使用它来对列表进行排序,非常灵活。在使用sorted函数时,我们还可以根据需要使用参数来更改排序方式,做到完美的排序效果。