zoukankan      html  css  js  c++  java
  • Python可迭代序列排序总结

    列表排序

    示例: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)}
    
  • 相关阅读:
    第十二周作业
    第11周学习总结
    第十周学习总结(五一作业)
    第九周作业
    第八周作业
    第七周作业
    PAT1049、1048、1047
    例题3-5,例题4-2,例题4-3
    PAT甲级真题打卡:1002. A+B for Polynomials
    PAT甲级真题打卡:1001.A+B Format
  • 原文地址:https://www.cnblogs.com/zzliu/p/10964413.html
Copyright © 2011-2022 走看看