Python内置函数之sorted():对可迭代对象中的元素进行排序,返回一个新的列表
Python内置函数之sorted()
Python提供了一个内置函数sorted(),它可以对可迭代对象中的元素进行排序,返回一个新的列表。这个函数可以排序数字、字符串等类型的元素。
sorted()函数的用法
sorted函数的基本语法如下:
sorted(iterable, *, key=None, reverse=False)
参数:
- iterable:表示要进行排序的可迭代对象,比如列表、元组等等。
- key:表示排序时按照什么规则进行排序。默认为None。
- reverse:表示是否进行倒叙排序。默认为False。
注意:在Python中,调用sorted()函数,并不会对原先的可迭代对象进行修改,而是产生一个新的已排序的列表。同时,sorted()函数可以对任何可迭代对象进行排序操作。
sorted()函数的实例
下面的例子是对一个列表进行排序:
mylist = [15, 19, 24, 28, 36] new_list = sorted(mylist) print(new_list) # 返回 [15, 19, 24, 28, 36]
下面的例子是对一个元组进行排序:
mytuple = (15, 19, 24, 28, 36) new_tuple = sorted(mytuple) print(new_tuple) # 返回 (15, 19, 24, 28, 36)
我们可以通过key参数指定按照元素的某个属性进行排序,例如:
students = [
{'name': 'Tom', 'age': 20},
{'name': 'Jack', 'age': 18},
{'name': 'Mike', 'age': 22}
]
new_students = sorted(students, key=lambda x: x['age'])
for student in new_students:
print(student['name']) # 按年龄升序排序,输出:Jack Tom Mike
我们还可以通过reverse参数来指定是否进行倒叙排序:
mylist = [15, 19, 24, 28, 36] new_list = sorted(mylist, reverse=True) # 进行倒叙排序 print(new_list) # 返回 [36, 28, 24, 19, 15]
注意:reverse参数是一个布尔值,如果为True,则表示使用倒序排序。默认为False。
sorted()函数的应用场景
Python的sorted()函数可以在很多场景下使用,这里我们只举几个例子:
1.对数字列表进行排序
sorted()函数可以方便的对数字列表进行排序。例如,对一个整数列表进行排序:
numbers = [102, 1, 25, 4, 8] new_numbers = sorted(numbers) print(new_numbers) # 返回 [1, 4, 8, 25, 102]
2.对字符串排序
字符串排序本质上和数字排序是一样的,因为在Python中,字符串也是可以比较大小的。例如,对一个字符串列表按照单词的长度排序:
words = ['A', 'is', 'apple', 'cat'] new_words = sorted(words, key=lambda x: len(x)) print(new_words) # 返回 ['A', 'is', 'cat', 'apple']
3.对元素是元组的列表进行排序。
在Python中,元组本身就是一种不可变的可迭代对象。因此我们可以根据元组中的某个元素进行排序,例如:
students = [('Tom', 90), ('Jack', 89), ('Mike', 92)]
new_students = sorted(students, key=lambda x: x[1], reverse=True)
print(new_students) # 返回 [('Mike', 92), ('Tom', 90), ('Jack', 89)]
我们可以看到,根据学生成绩进行排序时,需要将key参数指定为lambda x: x[1],表示根据元组中的第二个元素进行比较。同时使用reverse参数指定按照降序排列。
总结
sorted()函数是Python的内置函数之一,可以对可迭代对象中的元素进行排序,返回一个新的列表。除了可以进行数字、字符串等类型的排序,还可以对元素是元组的列表进行排序。通过指定key参数和reverse参数,可以进行排列的规则和排序方式。在实际应用中,sorted()函数有着广泛的应用场景。
