文本文档中存储的是字典形式,要实现将各行元素按数字大小排列:

首先想到的是python中的sorted()函数

tag_list = {}
modify = []file = open('finallyoriginalt.txt', 'r', encoding='utf-8', errors='egnore')
for line in file:line = line.strip()line = line.replace(':', ' ')  # 将冒号替换掉、line为字符串类型array = line.split()  # array为列表类型tag = array[0]weights = array[1]tag_list[tag] = weights  # 权重作为value,标签作为keymodify = tag_list.values()  # 得到value数组print(modify)
print(type(modify))
print('\n')
print(sorted(modify))  # 排序# print(sorted(tag_list.items(), key=lambda x: x[1]))

但运行结果为按照数字的首元素进行排列,不是预期结果

dict_values(['4', '2', '41', '20', '1', '37', '1', '1', '53', '1', '8', '1', '5', '1', '6', '21', '31', '74', '1', '1', '363', '2', '1', '47', '12', '17', '23', '15', '10', '23', '1', '15', '14', '44', '5', '18', '7', '14', '5', '1', '4', '1', '11'])
<class 'dict_values'>['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '10', '11', '12', '14', '14', '15', '15', '17', '18', '2', '2', '20', '21', '23', '23', '31', '363', '37', '4', '4', '41', '44', '47', '5', '5', '5', '53', '6', '7', '74', '8']

因为字典无序,且key不能改变,所以改为使用列表来实现

modify=[]
file = open('finallyoriginalt.txt','r', encoding='utf-8', errors='egnore')
for line in file:line = line.strip()     #   去掉两边的空格line = line.replace(':',' ')modify.append(line)#   冒泡排序
length = len(modify)
for i in range(length-1):for j in range(length-1-i):# temp = modify[j]# temp = temp.split()  # 以空格分割得到列表类型# weight = temp[1]  # 权重# 以上三行合并成一行:(modify[j].split())[1]if len((modify[j].split())[1]) < len((modify[j+1].split())[1]):modify[j], modify[j + 1] = modify[j + 1], modify[j]#  位数越多的数字越大elif len((modify[j].split())[1]) == len((modify[j+1].split())[1]):if (modify[j].split())[1] < (modify[j+1].split())[1]:modify[j], modify[j+1] = modify[j+1], modify[j]#   位数相同时则比较大小
print('\n')
print(modify)

运行结果:

['轻音乐   363', '学习   74', '清晨   53', '放松   47', '器乐   44', '酒吧   41', '民谣   37', '安静   31', '民族   23', '吉他   23', '影视原声   21', '经典   20', '欧美   18', '流行   17', '钢琴   15', 'ACG   15', '怀旧   14', '伤感   14', '爵士   12', '粤语   11', '华语   10', '运动   8', '游戏   7', '古风   6', '电子   5', '治愈   5', '工作   5', '午休   4', '日语   4', '世界音乐   2', '清新   2', '榜单   1', '啊朋友   1', '夜晚   1', '任素汐   1', '兴奋   1', '孤独   1', '-   1', '古典   1', '旅行   1', 'New   1', '给朋友的歌   1', 'Age   1']

首先从文本文件中读取各行,不存储到字典中,而是以行为单位存储到列表,使用冒泡排序对列表每一行数字进行比较并交换。

需要注意的是如果不先对数字的位数进行比较,则会像sorted函数一样按照数字的首元素大小进行排序。

对‘字典’按照value值进行排序相关推荐

  1. python----根据字典内的值实现排序

    """ 要求: 2020/11/1, 看了书本130之后的内容,发现还是不会,于是我搜了一篇优秀的博客 no1=dict(name1="余浩然",av ...

  2. iOS 根据数组中的字典的value值进行排序

    NSMutableArray *resArr = [NSMutableArray array];// 先把所有值的装进一个数组中NSMutableArray *valArr = [NSMutableA ...

  3. python字典按键值排序_Python字典『键 值』排序

    假设有一个字符串,然后想要查一下每个字母出现了多少次,可以通过字典来实现,实现方法? 用了get方法,来编写一下histogram这个函数,去掉那些if语句,更简洁一下: def histogram( ...

  4. 在Python中如何对一个字典(dict)的值进行排序

    上代码 >>> xs = {'a': 4, 'b': 3, 'c': 2, 'd': 1}>>> sorted(xs.items(), key=lambda x: ...

  5. Dist类系列(一):根据字典的key值、value值进行排序

    1.sorted()函数 sorted()函数签名:sorted(iterable, key=None, reverse=False) 参数 说明 iterable 任何可迭代对象,包括:列表.字典. ...

  6. python 对字典分别按照key值、value值进行排序

    1.sorted函数 首先介绍sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数. 其中iterable表 ...

  7. Python字典(Dictionary)操作全解【创建、读取、修改、添加、删除、有序字典、浅复制、排序】

    字典是"键-值"对的无序可变序列,字典中的每个元素可以分为两部分,"键"和"值".定义字典时,每个元素的"键"和&quo ...

  8. python中sorted函数的用法及字典如何根据键或值进行排序

    一:官方对sorted的文档: sorted(iterable[,cmp,[,key[,reverse=True]]]) 作用:Return a new sorted list from the it ...

  9. python字典按照key排序_python中字典按key值排序的实现方法

    之前小编介绍了字典本身不可排序,但按值可以,小编也介绍了按value值排序的三种方法.sorted()函数可以对数字或字符串进行排序,按key排序只是输出的key值的排序列表,使用sorted()函数 ...

最新文章

  1. iOS中得block代码块的定义及使用
  2. mysql int(40)_MySQL Integer类型与INT(11)
  3. wpf silverlight开发框架(prism)系列教程
  4. python抓取网页信息_python抓取网页中的动态数据
  5. 数据结构-----二叉树,树,森林之间的转换
  6. 解决No version of NDK matched the requested version问题
  7. linux ubuntu deepin apache2 rewrite
  8. java语言_java语言学习
  9. ac自动机 匹配最长前缀_别再暴力匹配字符串了,高效的KMP,才是真的香
  10. linux内核完全剖析0.11,linux0.11内核完全剖析 - ramdisk.c
  11. 数据结构 2-3-3 循环链表
  12. 1079 Total Sales of Supply Chain (25 分) 树的遍历:DFS+vector
  13. linux内核怎么变化,Linux内核中CPU状态变化机制简介
  14. 微信机器人,微信聊天机器人搭建教程附源代码
  15. java tcp连接硬件_SocketTool工具(模拟开发板)和基于socket的java服务器(TCP/IP协议)开发...
  16. python遥感图像开发小软件_遥感影像深度学习标注软件的开发要点
  17. vc控制excel格式(转载备忘)
  18. 机器学习sklearn----支持向量机SVC模型评估指标
  19. JavaScript基础之函数截流、防抖、柯理化
  20. The type 类名 is already defined

热门文章

  1. Allegro172版本DFM规则之DFA Package spacing
  2. linux 强制卸载nfs,linux nfs 卸载
  3. 链表中的LinkList L、LinkList *L
  4. where和which的区别【定于从句】
  5. 多年经验,怎么做一个优秀的售后工程师
  6. VVC帧内算法-PDPC
  7. ARM V8 base instruction -- WFI
  8. vue实现点击按钮,复制图片、文本到粘贴板
  9. android hide方法 末班,Android调用@hide系统隐藏类的几种方法
  10. 为什么HikariCP是性能最好的数据库连接池?