0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中的排序

gVTR_Unf 来源:机器视觉CV 2020-09-07 16:25 次阅读

Python 中的排序

在 Python 中,常用的排序就是 sorted ,对于列表这种数据结构来说,还有 sort 方法

列表的排序

使用 sort 方法进行排序,以第二个值进行升序排序,列表的 sort 方法是原地排序

另外一种排序方法是 sorted ,此方法不是原地排序,以第一个值进行排序,同样也是默认升序排序

字典排序

有时候我们也需要对字典进行排序,也是使用 sorted 函数,不过对字典排序后返回的是列表,列表中是元组(tuple)

C++ 中的排序

对 vector 排序

要对 vector 容器中的元素排序,可以使用 algorithm 算法库中的 sort 函数

#include #include #include usingnamespacestd; intmain(){ vectora; cout<< "sort before" << endl;  for (int i = 0; i <10; i++){   a.push_back(10-i);   cout << a[i] << "  ";  }  cout << endl;  cout << "sort after" << endl;  sort(a.begin(), a.end());  //   for (int i = 0; i < 10; i++)  {   cout << a[i] << "  " ;  }  cout << endl;  return 0; }

对 2 维vector 排序

类似于 Python ,我们也可以指定根据哪个元素进行排序

#include #include #include usingnamespacestd; #根据第二个元素进行排序 boolsort_by_second_val(vectorv1,vectorv2){ returnv1[1]>v2[1]; } intmain(){ //模拟一个输入 vector< vector>arr; for(inti=0;i< 10; i+=2)  {   vectortemp; temp.push_back(i); temp.push_back(i+1); arr.push_back(temp); } //排序前:arr =[[0, 1], [2, 3], [4, 5], [6, 7],[8, 9]] sort(arr.begin(),arr.end(),sort_by_second_val); //排序后:arr =[[8, 9], [6, 7], [4, 5], [2, 3],[0, 1]] return0; }

对结构体进行排序

模拟一个学生管理系统,依次创建学生信息,然后加入到 vector 中,接着对学生的年龄进行排序

#include #include #include #include usingnamespacestd; structStuden{ stringname; intage; }; boolsort_by_age(Studens1,Studens2){ returns1.age<  s2.age; } int main() {  vectorstudens;//用来存储所有学生的信息 Studens1,s2,s3;//创建3个学生 s1.name="xx"; s1.age=20; studens.push_back(s1); s2.name="yy"; s2.age=18; studens.push_back(s2); s3.name="zz"; s3.age=10; studens.push_back(s3); sort(studens.begin(),studens.end(),sort_by_age); return0; }

排序前

排序后

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4350

    浏览量

    63051
  • C++
    C++
    +关注

    关注

    22

    文章

    2114

    浏览量

    73932
  • python
    +关注

    关注

    56

    文章

    4811

    浏览量

    85102

原文标题:【C++简明教程】Python和C++指定元素排序比较

文章出处:【微信号:Unfinished_coder,微信公众号:机器视觉CV】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何将python文件导入到ROS系统

    本文通过使用myCobot机械臂进行QR码视觉追踪的实践案例分析,介绍如何将 python 文件导入到 ROS 系统
    的头像 发表于 02-11 11:08 220次阅读
    如何将<b class='flag-5'>python</b>文件导入到ROS系统<b class='flag-5'>中</b>

    详解Linux sort命令之掌握排序技巧与实用案例

    在linux系统使用过程,提供了sort排序命令,支持常用的排序功能。 常用参数 sort命令支持很多参数,常用参数如下:   短参数 长参数 说明 -n – number-sort 按字符串数值
    的头像 发表于 01-09 10:10 272次阅读

    TimSort:一个在标准函数库中广泛使用的排序算法

    排序算法呢? 本文将带你走进 TimSort,一个在标准函数库中广泛使用的排序算法。 这个算法由工程师 Tim Peters 于 2001 年专为 Python 设计,并自 Python
    的头像 发表于 01-03 11:42 147次阅读

    Pythondict支持多个key的方法

    ​ 在Python,字典(dict)是一种非常强大的数据结构,它允许我们通过键(key)来存储和检索值(value)。有时候,我们可能想要根据多个键来检索或操作字典的数据。虽然Python
    的头像 发表于 11-29 15:59 226次阅读

    Python多线程和多进程的区别

    Python作为一种高级编程语言,提供了多种并发编程的方式,其中多线程与多进程是最常见的两种方式之一。在本文中,我们将探讨Python多线程与多进程的概念、区别以及如何使用线程池与进程池来提高并发执行效率。
    的头像 发表于 10-23 11:48 521次阅读
    <b class='flag-5'>Python</b><b class='flag-5'>中</b>多线程和多进程的区别

    怎么导出python边缘计算的APP?

    怎么导出python边缘计算的APP,想进行修改又找不到源码
    发表于 07-25 06:13

    Python建模算法与应用

    上成为理想的脚本语言,特别适用于快速的应用程序开发。本文将详细介绍Python在建模算法的应用,包括常见的建模算法、Python在建模的优势、常用库以及实际案例。
    的头像 发表于 07-24 10:41 683次阅读

    Python在AI的应用实例

    Python在人工智能(AI)领域的应用极为广泛且深入,从基础的数据处理、模型训练到高级的应用部署,Python都扮演着至关重要的角色。以下将详细探讨Python在AI的几个关键应用
    的头像 发表于 07-19 17:16 1489次阅读

    Python的人工智能框架与实例

    在人工智能(AI)领域,Python因其简洁的语法、丰富的库和强大的社区支持,成为了最受欢迎的编程语言之一。本文将详细介绍Python的人工智能框架,并通过具体实例展示如何使用这些框架来实现不同的人工智能应用。
    的头像 发表于 07-15 14:54 1893次阅读

    Win10 vscode无法编译,提示python.exe: command not found怎么解决?

    电脑中已经删除之前安装的python,环境变量也添加了报错内容要求的python路径,我用git bash、cmd也是可以打开python的,证明环境变量是已经正确设置了 应该是
    发表于 06-07 06:42

    手把手教你排序算法怎么写

    新记录插入。以{3,0,9,8,2}无序表按升序排列为例,有序表是一个虚拟的顺序表:1.插入排序刚开始,有序表没有数据,因此直接插入3即可。{3}2.插入0的时候要
    的头像 发表于 06-04 08:03 799次阅读
    手把手教你<b class='flag-5'>排序</b>算法怎么写

    用FPGA实现双调排序的方法(2)

    典型的排序算法包括冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔
    的头像 发表于 03-21 10:28 710次阅读
    用FPGA实现双调<b class='flag-5'>排序</b>的方法(2)

    FPGA实现双调排序算法的探索与实践

    双调排序(BitonicSort)是数据独立(Data-independent)的排序算法,即比较顺序与数据无关,特别适合并行执行。在了解双调排序算法之前,我们先来看看什么是双调序列。
    发表于 03-14 09:50 726次阅读
    FPGA实现双调<b class='flag-5'>排序</b>算法的探索与实践

    想听听48和大对数光缆的排序

    48芯光缆和大对数光缆都是光缆的一种,它们的区别在于芯数不同。48芯光缆指的是光缆包含48根光纤,而大对数光缆则是指光缆芯数超过了48芯。 在实际的光缆应用,不同芯数的光缆需要
    的头像 发表于 03-12 10:44 727次阅读

    C语言实现经典排序算法概览

    冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。
    的头像 发表于 02-25 12:27 495次阅读
    C语言实现经典<b class='flag-5'>排序</b>算法概览