列表排序
示例:lst = [12, 6, 1, 3, 10]
方法一:使用sort
def list_sort(lst):
lst.sort() # 就地排序,没有返回值
return lst
补充:list.sort(key=None, reverse=False)
可以指定排序规则和是否降序
注意sort只适用于列表,其内部采用的排序算法是Timsort,一种结合归并排序和插入排序的算法
方法二:使用sorted
def list_sort(lst):
return sorted(lst)
补充:sorted(iterable, key, reverse)
也可以指定排序规则和是否降序
注意sorted使用于所有可迭代对象,是新建一个对象,原对象不变
### 字典排序
按key排序
##### 方法一:使用sorted和lambda
def dict_sort_by_key(dic):
return dict(sorted(dic.items(), key=lambda x: x[0]))
##### 方法二:使用sorted字典推导式
def dict_sort_by_key(dic):
return {key:dic[key] for key in sorted(dic)}
#### 按value排序
方法一:使用sorted和lambda
def dict_sort_by_value(dic):
return dict(sorted(dic.items(), key=lambda x: x[1]))
##### 方法二:使用sorted字典推导式
def dict_sort_by_value(dic):
# 使用字典的get方法的返回值作为排序规则
return {key:dic[key] for key in sorted(dic, key=dic.get)}