列表排序方法 {#列表排序方法}
- sort():仅对list对象进行排序,会改变list自身的顺序,没有返回值,即原地排序
- sorted():对所有可迭代对象进行排序,返回排序后的新对象,原对象保持不变;
sort() {#sort}
list.sort(key=None, reverse=False)
- key:设置排序方法,或指定list中用于排序的元素;
- reverse:升降序排列,默认为升序排列;
例子:
nums = [2, 3, 5, 1, 6]
nums.sort()
print(nums) # [1, 2, 3, 5, 6]
nums.sort(key=None, reverse=True)
print(nums) # [6, 5, 3, 2, 1]
`students = [('john', 'C', 15), ('jane', 'A', 12), ('dave', 'B', 10)]
students.sort(key=lambda x: x[2]) # 按照列表中第三个元素排序
print(students) # [('dave', 'B', 10), ('jane', 'A', 12), ('john', 'C', 15)]
`
sorted() {#sorted}
sorted(iterable [, key[, reverse]])
- key :设置排序方法,或指定迭代对象中,用于排序的元素;
- reverse :升降序排列,默认为升序排列;
例子:
nums = [2, 3, 5, 1, 6]
newNums = sorted(nums)
print(nums) # [2, 3, 5, 1, 6]
print(newNums) # [1, 2, 3, 5, 6]
students = [('john', 'C', 15), ('jane', 'A', 12), ('dave', 'B', 10)]
newStudents = sorted(students, key=lambda x: x[1])
print(students) # [('john', 'C', 15), ('jane', 'A', 12), ('dave', 'B', 10)]
print(newStudents) # [('jane', 'A', 12), ('dave', 'B', 10), ('john', 'C', 15)]