位置: IT常识 - 正文

在Python中字典按值排序的实现方法(python字典按要求)

编辑:rootadmin
这篇文章主要介绍了在Python中字典按值排序的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

推荐整理分享在Python中字典按值排序的实现方法(python字典按要求),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中字典按照value排序,python中字典按键排序,python中字典的操作方法,python中字典按值排序,python中字典按键的降序,python中字典按键或键值排序,python中字典按值排序,python中字典按键或键值排序,内容如对您有帮助,希望把文章链接给更多的朋友!

在Python中字典按值排序的实现方法(python字典按要求)

一、sorted高阶函数这种方法更为简洁,更为推荐。

d={'a':1,'c':3,'b':2} # 首先建一个字典d#d.items()返回的是: dict_items([('a', 1), ('c', 3), ('b', 2)])d_order=sorted(d.items(),key=lambda x:x[1],reverse=False) # 按字典集合中,每一个元组的第二个元素排列。 # x相当于字典集合中遍历出来的一个元组。print(d_order) # 得到: [('a', 1), ('b', 2), ('c', 3)]

下面是sorted排序方法的详细解释:1. sorted高阶函数语法格式:  sorted(可迭代对象,key=函数名,reverse=False/True)作用:从可迭代对象中,依次取出一个元素,该元素再按照key规定的排列依据排序。可迭代对象:即可依次取值的对象,例如:集合,序列(列表,字符串,元组),字典等。key : 是列表排列的依据,一般可以自定义一个函数返回排序的依据,再把函数名绑定给key。reverse : 译为反转,reverse默认等于False,从小到大排序。等于True时,从大到小排序。2. 匿名函数lambda的格式:    函数名 = lambda  [形参1,形参2,...] :  ,返回操作语句块产生的结果并绑定给函数名。例如: key=lambda x : x[1]      x:相当于字典集合中的一个元组, 例:dict_items([('a', 1), ('c', 3), ('b', 2)])中的('a', 1)或('c', 3)或('b', 2)x[1]: 返回x中的第二个元素,即键值对元组中的值。dict_items([('a', 1), ('c', 3), ('b', 2)])中的1或2或3注意:(1) sorted函数中的可迭代对象不要用字典d,那样只能迭代出的字典d的键。要用d.items()才可迭代出字典的键值对。例:不能用 d_order=sorted(d,key=lambda x:x[1],reverse=False)要用 d_order=sorted(d.items(),key=lambda x:x[1],reverse=False)(2) sorted函数排好序后,要绑定一个对象(赋值),例:d_order=sorted(d.items(),key=lambda x:x[1],reverse=False).因为字典是无序类型,用sorted函数排好序后不绑定d_order,字典会自动打乱顺序。二、列表的.sort()方法Python中的字典是无序类型,没有自己的排序方法。但可以用列表的.sort()方法来进行排序。我们首先要把字典转换为列表,再进行排序。例子:

d={'a':1,'c':3,'b':2} # 首先建一个字典dd.items() # 得到: dict_items([('a', 1), ('c', 3), ('b', 2)])L=list(d.items()) # 得到列表: L=[('a', 1), ('c', 3), ('b', 2)]L.sort(key=lambda x:x[1],reverse=False) # 按列表中,每一个元组的第二个元素从小到大排序。 # x代表从L中遍历出的一个元组print(L) # 得到: [('a', 1), ('b', 2), ('c', 3)]

注意:1.上面的例子中最要的一步就是:  L=list(d.items()),  即: L = list(dict_items([('a', 1), ('c', 3), ('b', 2)])用list()列表构造函数,将L= dict_items([('a', 1), ('c', 3), ('b', 2)]) 转变为列表,得到列表:  L=[('a', 1), ('c', 3), ('b', 2)] 。ps: 今天早上我折腾了好久才发现,list()构造函数竟然可以把 d.items()产生的dict_items键值对集合类型,直接变成列表,简直NB啊!2.再简单说一下列表的L.sort()方法:  L.sort(key=函数名,reverse=False/True)L.sort():会自动遍历列表中的元素,即依次取出一个元素。再以key绑定的函数为依据排序。例如: L.sort(key=lambda x:x[1],reverse=False)       #L=[('a', 1), ('c', 3), ('b', 2)]从列表L中取出第一个元素('a', 1)元组,以元组的第二个元素'1'为排序依据,再依次从列表中依次取出第二,第三,...个元素确定排序依据,最后reverse=False,按从小到大的顺序排列。注: L.sort()内部还有其他参数,感兴趣的小伙伴可以用度娘搜一下。三、扩展:其实小c君是在用jieba库进行文本词频统计时,才遇到了给字典排序的这个问题。小伙伴们感兴趣的话可以看一下下面的代码,也可以自己找个文本试一下,非常有趣。

import jiebawith open("天龙八部-网络版.txt",'r',encoding='utf-8') as f: txt=f.read() words=jieba.lcut(txt) d={} for word in words: d[word]=d.get(word,0)+1 del d[' '] del d['\n']with open("天龙八部-词语统计.txt",'w',encoding='utf-8') as f2: d=sorted(d.items(),key=lambda x:x[1],reverse=True) for x,y in d: f2.write("{}:{}\n".format(x,y))

注:还可以优化代码,进行文本降噪。四、后记:今天折腾了一天,终于把字典排序的问题解决了。

本文链接地址:https://www.jiuchutong.com/zhishi/310396.html 转载请保留说明!

上一篇:Python中fock()函数如何使用(python中fork函数)

下一篇:vue3+ts+Vuex中使用websocket协议方式(vuex 3)

  • 华为下载的app桌面没有显示(华为下载的app桌面没有显示怎么办)

    华为下载的app桌面没有显示(华为下载的app桌面没有显示怎么办)

  • 朋友圈怎么全部删除所有内容(朋友圈怎么全部屏蔽)

    朋友圈怎么全部删除所有内容(朋友圈怎么全部屏蔽)

  • 网上查询身份证名下手机卡(网上查询身份证名下飞机票)

    网上查询身份证名下手机卡(网上查询身份证名下飞机票)

  • 苹果se的home键是实体按键吗(iphone se的home键是下陷的吗)

    苹果se的home键是实体按键吗(iphone se的home键是下陷的吗)

  • 平板输入键盘变小了(平板输入键盘变小了怎么变回来呢)

    平板输入键盘变小了(平板输入键盘变小了怎么变回来呢)

  • 一体机的麦克风在哪里(一体机的麦克风能直接使用吗)

    一体机的麦克风在哪里(一体机的麦克风能直接使用吗)

  • 荣耀30带红外吗(荣耀30带红外吗手机)

    荣耀30带红外吗(荣耀30带红外吗手机)

  • 手机微信和电脑微信可以不同时登录吗(手机微信和电脑微信聊天记录同步吗)

    手机微信和电脑微信可以不同时登录吗(手机微信和电脑微信聊天记录同步吗)

  • 延迟收货什么情况下用(延迟收货什么时候申请)

    延迟收货什么情况下用(延迟收货什么时候申请)

  • realtek是什么(realtekdigital)

    realtek是什么(realtekdigital)

  • 华为nova5pro怎么设置桌面插件(华为nova5pro怎么设置底部按键)

    华为nova5pro怎么设置桌面插件(华为nova5pro怎么设置底部按键)

  • 微信旺财什么意思(微信里面旺财是什么意思)

    微信旺财什么意思(微信里面旺财是什么意思)

  • 短信未送达是拉黑了吗(短信显示未送达是不是对方就看了)

    短信未送达是拉黑了吗(短信显示未送达是不是对方就看了)

  • windowsxp是什么操作系统

    windowsxp是什么操作系统

  • 天猫精灵cc可以安装app吗(天猫精灵cc可以监控回放吗)

    天猫精灵cc可以安装app吗(天猫精灵cc可以监控回放吗)

  • 苹果手机怎么创建文件夹(苹果手机怎么创建apple ID)

    苹果手机怎么创建文件夹(苹果手机怎么创建apple ID)

  • 小米9有5G版吗(小米9有5g的吗)

    小米9有5G版吗(小米9有5g的吗)

  • 拼多多一共有多少次免拼(拼多多一共有多少次免拼机会)

    拼多多一共有多少次免拼(拼多多一共有多少次免拼机会)

  • 说说如何取消私密(怎么取消说说设置为私密)

    说说如何取消私密(怎么取消说说设置为私密)

  • 淘宝商品属性怎么设置(淘宝商品属性值是什么)

    淘宝商品属性怎么设置(淘宝商品属性值是什么)

  • 拼多多怎么算新用户(拼多多怎么算新用户砍价)

    拼多多怎么算新用户(拼多多怎么算新用户砍价)

  • 路由器unknown是什么意思(路由器unreachable)

    路由器unknown是什么意思(路由器unreachable)

  • 港版iphone支持电信卡吗(港版iPhone支持电信吗)

    港版iphone支持电信卡吗(港版iPhone支持电信吗)

  • 新版qq的扩列怎么显示(qq的扩列怎么搞)

    新版qq的扩列怎么显示(qq的扩列怎么搞)

  • 12123登不上怎么办(12123登不上怎么注销账户)

    12123登不上怎么办(12123登不上怎么注销账户)

  • 怎么把doc转换成docx(怎么把doc转换成zip)

    怎么把doc转换成docx(怎么把doc转换成zip)

  • 华为手机智慧识屏在哪(华为手机智慧识物在哪里开启啊)

    华为手机智慧识屏在哪(华为手机智慧识物在哪里开启啊)

  • 以公司名义买50万的车可以省多少钱
  • 不抵扣勾选怎么撤销
  • 建筑企业结转成本怎么算
  • 未达起征点销售额怎么填申报表
  • 一个人可以在多家公司任职吗
  • 债权投资减值的账务处理
  • 建筑服务预征缴纳税款本期实际抵减税额怎么填
  • 什么叫调表不调帐
  • 合伙企业分配利润需要全体合伙人同意吗
  • 固定资产贷款资料清单
  • 卖胶卷的店
  • 现金支票怎么支付的
  • 汇款后又退回来是什么原因
  • 对方公司倒闭应收账款发票还需要开吗
  • 先转款后开票会计分录
  • 应付账款周转次数公式的理解
  • 应付汇差是什么意思
  • 对公付款没有发票
  • 公司用现金发放工资在税法上合规吗
  • 航天金税财务软件使用说明
  • 企业员工已公司名义参加境外比赛获得奖金如何缴税?
  • 增值税发票开票限额怎么申请?
  • 职工教育经费能抵扣进项税
  • 发票收款人和开票人
  • 代理报关业务
  • 对账单回复函
  • 一般纳税人附加税减免
  • 收到老板的钱会计分录
  • 地方教育附加怎么算的?
  • 公司支付给法院要交税吗
  • 联想g40开机屏幕一直闪
  • 应付票据包括哪些票
  • 碎片化对应什么
  • 给供应商垫付运费合法吗
  • php网页运行原理
  • 外籍人员个人所得税政策2023规定
  • 贷款的资产减值怎么处理
  • laccadive islands
  • 火灾烧毁物品如何取证
  • 以其他方式取得土地使用权
  • 哪些收入不列入交纳党费计算基数
  • vue项目更新后还是老代码
  • 专项应付款借方余额表示
  • 增值税专用发票几个点
  • 报销用别的发票抵用怎么入账
  • 公司的注册资本是什么意思
  • 2020信息采集
  • 将购入的原材料用于不动产在建工程
  • 小微企业材料
  • 财政监制章专用收据可以税前扣除吗
  • 存货包括材料成本吗
  • 物流辅助服务属于什么科目
  • mysql binlog dump
  • 固定资产的修理费属于什么费用
  • 公司私账银行流水
  • 异地工程开票要注意什么手续
  • 建筑业发票可以抵扣制造业进项
  • 红字发票开错了已上传如何作废?
  • 没有销售需要结转主营业务成本吗
  • 公司购买的意外险计入什么科目
  • 健身中心开的服装店
  • 三代个税返还算什么费用
  • 企业利润分为四个方面
  • 认证后的进项税额留抵退税
  • 会计明细账怎么记
  • 无建账能力的纳税人是什么意思
  • linux内核构成
  • windows内存诊断工具检测到硬件问题怎么办
  • 微软mission
  • win10右键菜单怎么设置
  • VMware10安装Windows server2012
  • win7系统安装软件乱码
  • 磁盘修复完成以后怎么办
  • 安卓listview用法
  • 安卓wifi打不开解决
  • javascript随机生成数字
  • 关于python中的判断条件
  • 电子税务局领取纸质发票的步骤
  • 交契税可以用现金吗
  • 广西电子税务局电话人工客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设