首页 > 编程语言 >python实现结构体排序

python实现结构体排序

时间:2023-09-12 21:24:02浏览次数:32  
标签:tem sort struct python list key 结构 排序 cmp

python默认提供的列表sort方法,仅支持列表的元素排序。若想实现结构提排序,可参考下面方法:

1、使用 lambda 表达式

 1 class struct:
 2     def __init__ (self):
 3         self.a = 0
 4         self.b = 'a'
 5 
 6 struct_list = []
 7 char_list = ['a', 'b', 'c']
 8 
 9 for i in range(3):
10     tem = struct()
11     tem.a = 3 - i
12     tem.b = char_list[i]
13     struct_list.append(tem)
14 
15 from functools import cmp_to_key
16 
17 # def cmp(a, b) :
18 #     if a.a < b.a :
19 #         return -1 # 不交换
20 #     else:
21 #         return 1 # 交换
22 
23 def cmp(a, b) :
24     if a.a < b.a :
25         return 1 # 交换
26     else:
27         return -1 # 不交换
28 
29 
30 # struct_list.sort(key=cmp_to_key(cmp))
31 # struct_list.sort(key=lambda x:x.a, reverse=True)
32 struct_list.sort(key=lambda x:x.a, reverse=False)
33 
34 for i in range(3):
35     print(str(i) + ':' + str(struct_list[i].a) + struct_list[i].b)

如上代码所示,根据结构体的域段a来排序,默认reverse为False,表示升序,

2、使用cmp方法,

如上例行30所示,

标签:tem,sort,struct,python,list,key,结构,排序,cmp
From: https://www.cnblogs.com/xuekui-jin/p/17697838.html

相关文章

  • Python数据可视化:Matplotlib
    Matplotlib是Python中最受欢迎的数据可视化库之一,它提供了多种绘图函数和参数,可以创建各种类型的图形,包括线图、散点图、柱状图、饼图等等。下面是一些Matplotlib的入门知识和具体案例。安装Matplotlib在开始使用Matplotlib之前,需要先安装它。可以使用pip命令来安装:pipinstallmat......
  • 《Flask Web开发:基于Python的Web应用开发实战》高清高质量PDF电子书+源码
    网盘下载:https://pan.quark.cn/s/cc9dc7402cdb......
  • 《Python数据分析基础教程:NumPy学习指南.第2版》高清高质量PDF电子书+源码
    罕见的NumPy中文入门教程,Python数据分析首选从最基础的知识讲起,手把手带你进入大数据挖掘领域囊括大量具有启发性与实用价值的实战案例下载:https://pan.quark.cn/s/730b594117c0......
  • difflib: Python 比较数据集
    difflib 是一个专注于比较数据集(尤其是字符串)的Python模块。为了具体了解您可以使用此模块完成的几件事,让我们检查一下它的一些最常见的函数。SequenceMatcherSequenceMatcher 是一个比较两个字符串并根据它们的相似性返回数据的函数。通过使用 ratio(),我们将能够根据比率/......
  • python实现md5签名
    在Python中,hashlib.md5是一个用于计算MD5哈希值的模块。MD5是一种常用的哈希算法,它将输入数据转换为固定长度的哈希值。defget_api_sign():"""签名的计算方式:sign=md5(accountId+"zjkj@2023"+time)*2重复两次"""acco......
  • python安装后,添加完环境变量,dos窗口输入python无效
    问题背景python版本:3.8.5安装时是否勾选添加环境:是问题:dos窗口输入python提示:无任何报错提示,弹出windows应用商店解决方案问题1:弹出windows应用商店是因为默认的商店的path环境变量优先级高于我们配置的python目录,将对应的配置优先级调换即可,比如C:\Users\panie\AppDa......
  • 归并排序
              ......
  • python版elasticsearch入门笔记
    Elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎。Elasticsearch的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再......
  • 快速排序
         ......
  • 冒泡排序
         ......