内置函数sorted()
返回给定 iterable 的排序列表。排序可以是升序或降序。如果 iterable 是字符串,则按字母顺序排序;如果是数字,则按数字排序。对于既有字符串又有不能排序的数字的可重复项。
**sorted(iterable, key=None, reverse=False)** #where iterable may be string, tuple, list,set, dictionary frozen set)
排序的()参数:
取三个参数。根据 key 函数的返回值,我们可以对给定的 iterable 进行如下排序
已排序(可迭代,key=len)
参数 | 描述 | 必需/可选 |
---|---|---|
可迭代的 | 序列(字符串、元组、列表)或集合(集合、字典、冻结集合)或任何其他迭代器。 | 需要 |
反面的 | 如果为真,则排序列表反转(或按降序排序)。如果未提供,则默认为假。 | 可选择的 |
键 | 用作排序比较的关键字的函数。默认为无。 | 可选择的 |
排序的()返回值
这个sorted()
方法类似于sorted()
,不同的是sorted()
不返回值。
| 投入 | 返回值 | | 可重复的 | 排序列表 |
Python 中的sorted()
方法示例
示例 1:如何对字符串、列表和元组进行排序
# vowels list pyth 'a', 'u', 'o', 'i']
print(sorted(python_list))
# string pyth
print(sorted(python_string))
# vowels tuple pyth 'a', 'u', 'o', 'i')
print(sorted(python_tuple))
输出:
['a', 'e', 'i', 'o', 'u']
['P', 'h', 'n', 'o', 't', 'y']
['a', 'e', 'i', 'o', 'u']
示例 2:如何按降序排序
# set pyth 'a', 'u', 'o', 'i'}
print(sorted(python_set, reverse=True))
# dictionary pyth 1, 'a': 2, 'u': 3, 'o': 4, 'i': 5}
print(sorted(python_dict, reverse=True))
# frozen set
frozen_set = frozenset(('e', 'a', 'u', 'o', 'i'))
print(sorted(frozen_set, reverse=True))
输出:
['u', 'o', 'i', 'e', 'a']
['u', 'o', 'i', 'e', 'a']
['u', 'o', 'i', 'e', 'a']
示例 3:如何使用具有键功能的sorted()
对列表进行排序
# take the second element for sort
def take_second(elem):
return elem[1]
# random list
randomnum = [(2, 2), (3, 4), (4, 1), (1, 3)]
# sort list with key
sorted_keylist = sorted(randomnum, key=take_second)
# print list
print('Sorted list:', sorted_keylist)
输出:
Sorted list: [(4, 1), (2, 2), (1, 3), (3, 4)]
示例 4:如何使用多个键进行排序
# Nested list of student's info in a Science Olympiad
# List elements: (Student's Name, Marks out of 100, Age)
student_list = [
('Alison', 50, 18),
('Terence', 75, 12),
('David', 75, 20),
('Jimmy', 90, 22),
('John', 45, 12)
]
输出:
[('Jimmy', 90, 22), ('Terence', 75, 12), ('David', 75, 20), ('Alison', 50, 18), ('John', 45, 12)]