内置sorted的简单实现

今天给小伙们出了一个题,排序下面的字典,可以指定key或者value进行升序、降序排序:

 dt = {
     ‘Jack‘: 89,
     ‘Rose‘: 78,
     ‘Tom‘: 99
 }

分析:
1.字典暂时不能直接排序
2.可以借鉴元组排序的方式
代码如下:

print(sorted(list(dt.items()), key= lambda x:x[1], reverse=False))

不过有些小伙伴,对这个代码不是很理解,于是简单的实现sorted排序,这里不考虑复杂度和性能,仅仅是为了演示下sorted:

dt = {
    ‘Jack‘: 89,
    ‘Rose‘: 78,
    ‘Tom‘: 99
}

def bubble_sort(dt:list, key, reverse=False):
    for x in range(len(dt) - 1):
        for y in range(len(dt)-1-x):
            if not reverse:
                if key(dt[y]) > key(dt[y+1]):
                    dt[y], dt[y+1] = dt[y+1],dt[y]
            else:
                if key(dt[y]) < key(dt[y+1]):
                    dt[y], dt[y+1] = dt[y+1],dt[y]

def key(x):
    # 这里用 value 排序
    return x[1]

dt2 = list(dt.items())
bubble_sort(dt2, key, reverse=False) #源地修改
print(sorted(list(dt.items()), key= lambda x:x[1], reverse=False))
print(dt2)

原文地址:https://blog.51cto.com/14730644/2475252

时间: 2024-10-08 10:55:44

内置sorted的简单实现的相关文章

python内置函数的简单使用和介绍

"""内置函数的简单使用和介绍参考链接:https://docs.python.org/3/library/functions.html """1.abs() # 绝对值""" n = abs(-10) print (n) # 10 """2.all() # 全为真,输出Ture , 则输出Flaseany() # 只要有真,输出Ture,则输出Flase 0,None,"&q

Jsp内置对象的简单说明

声明 实习森的理解层次,希望有错大家一起纠正 本文主要信息来自网友共享的一个JSPAPI,不是特别全,只是对jsp内置对象进行了简单的介绍,这里我总结了一下 正文 Jsp主要内置了9个对象,分别为:Application.Exception.Out.PageContext.Page.Request.Response.Session以及Config,详细如下: Application对象 基础介绍: Application对象实现了不同用户之间的数据共享,声明周期最长了,服务器启动的时候,Appl

springboot内置的定时任务简单使用

直接上图:搞定(一定要加@EnableScheduling(开启定时任务)这个注解@Component(让spring扫描到)),下面是每五秒执行一次 结果: 原文地址:https://www.cnblogs.com/share-record/p/12283399.html

iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用

基于iOS SDK 8.0以及Xcode 6 Beta 6. Core Image是一个很强大的框架.它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光. 它利用GPU(或者CPU)来非常快速.甚至实时地处理图像数据和视频的帧.并且隐藏了底层图形处理的所有细节,通过提供的API就能简单的使用了,无须关心OpenGL或者OpenGL ES是如何充分利用GPU的能力的,也不需要你知道GCD在其中发挥了怎样的作用,Core Image处理了全部的细节. Core Image框

Hexo 添加自定义的内置标签

灵感 想设计一个记录自已骑行的页面,显示时间.地点.路线图等信息.方便以后做一些留念.定位想实现下面类似的效果.参考:<特效>      实现方案也比较简单,反键查看源码.直接Copy,在加之改造即可.下面所述的方式是怎么提高代码的复用性.(内置标签) 简单实现 查看源码发现大致结构代码如下: <div class="location"> <i class="location-icon" style="opacity: 1;

Python 内置函数sorted()有哪些高级用法?

本文和大家分享的主要是python内置函数sorted()的相关内容,一起来看看吧,希望对大家学习python http://www.maiziedu.com/land/python/有所帮助. 1.对于 Python 内置函数 sorted() ,先拿来跟list(列表)中的成员函数 list.sort() 进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的. 2.主要的区别在于, list.sort() 是对已经存在的列表进行操作,进而可以改变

Python基础篇【第2篇】: Python内置函数--map/reduce/filter/sorted

Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位置使用lambda表达式.在开发者想要使用一个简单函数作为参数或者返回值时,使用lambda表达式是很方便的.总结:处理简单逻辑,自动返回结果 语法格式: lambda parameters: expression 就相当于 def fun(args) return expression 并且lam

Python 内置函数sorted()在高级用法

对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的.主要的区别在于,list.sort()是对已经存在的列表进行操作,进而可以改变进行操作的列表.而内建函数sorted返回的是一个新的list,而不是在原来的基础上进行的操作. 再来,让我们用Python自带的帮助函数help()看看对于sorted()是怎么定义的: >>>help(sort

四舍五入的一些简单写法(利用内置函数,算法2种写法)

?       //内置函数的写法        //网上零售价和折扣价在计算结束需要进行进位,规则如下:         //个位为1,2,3,4进位到5,例如计算后的价格为1201,则价格为1205:         //个位为6,7,8,9进位到0,例如计算后的价格为1209.则价格为1210:         public static string ChangePrice(double price)         {             int changed = 0;