论Sort()方法在 Python 和 Javascript 中应用的区别

news2024/11/16 13:39:23

   Sort()方法相信大家都熟悉,用于排序,那就是数字从低到高(默认) 和 从高到低。以下对这个排序方法在Python 和 Java Script 中应用的区别作详细的举例说明。


   在 Python中,例如有 lst1 : [1,5,8,6,2] ,要对这列表进行从小到大的排序。
   可见,输出结果为 [1,2,5,6,8], 符合从小到大排序的要求。

在这里插入图片描述



   再举一个例子,有列表 lst2: [3,5,88,66,100,22]


   可见,输出结果为 [3, 5, 22, 66, 88, 100], 也符合从小到大排序的要求。

在这里插入图片描述



   另外,我们也可以把列表按从大到小的排序方式输出。通过添加参数 reverse = True 去实现,具体参数方法,可以参考官档。默认是升序,参数默认为 False。

在这里插入图片描述



lst1 = [1,5,8,6,2]
lst2 = [3,5,88,66,100,22]

lst1.sort(reverse=True)
lst2.sort(reverse=True)
print(lst1)
print(lst2)


在这里插入图片描述



   在 Javascript 中,对数组的排序,也可以用 sort() 方法去实现。

在这里插入图片描述



   另外一个例子,当数组出现2位数或以上时,这时 sort() 就会出现了 bug 。

在这里插入图片描述



   可见输出结果,并不是按照升序输出。这也是和以上 Python的区别。我们可以通过 Javascript 固定的封装方法去实现升序、降序。



   升序:



在这里插入图片描述



var list = [81, 132, 24, 51, 1, 2];
      list.sort(function (a, b) {
        return a - b;
      });
      console.log(list);


   降序:



在这里插入图片描述



var list = [81, 132, 24, 51, 1, 2];
      list.sort(function (a, b) {
        return b - a;
      });
      console.log(list);


   可见,通过 封装一个函数 function(a,b) 便可以解决这个自身问题。


   接下来,再详细讲解除了 Sort() 方法实现外,怎样利用原生的写法去实现排序。


   假设有 num_list = [32,22,35,11,49,30],需要对列表(数组)里的数字从小到大升序的方式排序。



   以下是排序逻辑的过程,对这个数组排序,需要3轮的比较,而每一轮也有相对应的比较次数。比较的轮数最大值为:数组长度 -1, 而比较的次数最大值为 : 数组长度 -1 - 比较的轮数。 因此我们可以通过嵌套循环去实现,父循环去控制比较的轮数,子循环去控制比较的次数。然后在子循环里,添加对比条件,当符合时,执行两个数值之间的调换,从而实现排序的结果。



在这里插入图片描述



   升序的输出结果:



在这里插入图片描述



num_list = [32,22,35,11,49,30]

def sort_lst(lst):
  for i in range(len(lst) -1 ):
    for j in range(len(lst) - 1 - i):
      if lst[j] > lst[j+1]:
        temp = lst[j+1]
        lst[j+1] = lst[j]
        lst[j] = temp
  return lst

print(sort_lst(num_list))


   同理,也可以实现降序排序



在这里插入图片描述



num_list = [32,22,35,11,49,30]

def sort_lst(lst):
  for i in range(len(lst) -1 ):
    for j in range(len(lst) - 1 - i):
      if lst[j] < lst[j+1]:
        temp = lst[j+1]
        lst[j+1] = lst[j]
        lst[j] = temp
  return lst

print(sort_lst(num_list))


   在 Javascript 也可以实现同样的原生逻辑写法:



   升序:



在这里插入图片描述



var array = [32,22,35,11,49,30];

      function sort(array) {
        for (var i = 0; i < array.length - 1; i++) {
          for (var j = 0; j < array.length - 1 - i; j++) {
            if (array[j] > array[j + 1]) {
              var temp = array[j];
              array[j] = array[j + 1];
              array[j + 1] = temp;
            }
          }
        }
        return array;
      }

      console.log(sort(array));


   降序:



在这里插入图片描述



var array = [32,22,35,11,49,30];

      function sort(array) {
        for (var i = 0; i < array.length - 1; i++) {
          for (var j = 0; j < array.length - 1 - i; j++) {
            if (array[j] < array[j + 1]) {
              var temp = array[j];
              array[j] = array[j + 1];
              array[j + 1] = temp;
            }
          }
        }
        return array;
      }

      console.log(sort(array));
   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html制作好看的个人简历(附源码)

文章目录1.设计来源1.1 主界面1.2 基本资料页面1.3 个人名言页面1.4 教育经历页面1.5 联系方式页面1.6 自我评价页面1.7 工作经历页面1.8 兴趣爱好页面1.9 沟通交流页面2.效果和源码2.1 动态效果2.2 源代码2.3 相关个人简历源码源码下载作者&#xff1a;xcLeigh 文章地址&#…

java课程设计(学生信息管理系统设计)+数据库

&#x1f50d; &#x1f50e; 本期带领大家一起来学习java课程设计&#xff08;学生信息管理系统设计&#xff09;数据库的实现思路 &#x1f50d; &#x1f50e; 文章目录题目要求数据库&#x1f30d;一 、环境搭建&#x1f30d;二 、功能实现 &#x1f30e; &#x1f30d;1.学…

重磅!阿里版本【ChatGPT】开放测评!

前两天突然爆出惊人消息&#xff1a;阿里版ChatGPT开放测评了&#xff01; 在本月初&#xff0c;已经有诸多关于阿里巴巴即将推出类似ChatGPT产品的传闻。 数日前&#xff0c;首批曝光的天猫精灵“鸟鸟分鸟”脱口秀版GPT基于大型模型的“精简版”&#xff0c;凭借其出色的表现吸…

2023-4-11-chrono库用法学习

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f;&#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xff0…

4.9、字节序

4.9、字节序1.简介2.字节序举例3.判断电脑存储方式代码1.简介 现代 CPU 的累加器一次都能装载&#xff08;至少&#xff09;4 字节&#xff08;这里考虑 32 位机&#xff09;&#xff0c;即一个整数。那么这 4字节在内存中排列的顺序将影响它被累加器装载成的整数的值&#xff…

vue element-ui 暗黑主题应用到若依框架

问题描述 基于若依框架的element-ui&#xff0c;将主题更换为暗黑主题。 问题分析 现有的element-ui框架提供的主题不满足自定义需求&#xff0c;大多数框架&#xff0c;包括若依提供了更换主题色的功能&#xff0c;但也只是更换的primary-color&#xff0c;其他组件的主题还…

算法小课堂(五)贪心算法

一、概述 贪心算法是一种常见的算法思想&#xff0c;用于解决优化问题。其基本思想是在每一步选择中都采取当前状态下最优的选择&#xff0c;从而希望能够获得全局最优解。 具体来说&#xff0c;贪心算法通常分为以下步骤&#xff1a; 定义问题的最优解&#xff0c;通常需要将…

【人生历程】我的创作纪念日

目录 与编程不得不说的爱恨情仇 在csdn的收获&#xff1a; 与csdn的日常 在平凡的日子偶然的成就感&#xff1a; 对未来的憧憬&#xff1a; 今天是2023.4.8号&#xff0c;早上的刚刚参加完蓝桥杯&#xff0c;下午看到csdn官方的活动&#xff0c;心血来潮写下以下内容&…

家政服务小程序实战开发教程018-用户注册

我们在教程的一开始的时候就讲解了用户注册的功能。当初的规划是一进来就让用户自主的选择角色&#xff0c;然后提交用户信息&#xff0c;如果未注册就跳转到注册界面。 随着教程的深入&#xff0c;又参考了很多线上的小程序&#xff0c;发现这种模式也有一定的缺点。因为作为…

Linux网络虚拟化2

Linux网络虚拟化2 今天我们接着上节课介绍的 Linux 网络知识&#xff0c;继续来学习它们在虚拟化网络方面的应用&#xff0c;从而为后续学习容器编排系统、理解各个容器是如何通过虚拟化网络来协同工作打好基础。 这一篇内容较多&#xff0c;可以重点看标红部分和标粗部分​。…

Ubuntu环境下minicom使用

1、minicom的安装 sudo apt-get install minicom2、minicom的配置 sudo minicom -s # 打开minicom配置界面3、配置serial port setup串口信息 使用上下箭头选择&#xff0c;enter进入。 按A修改Serial Device&#xff0c;修改之前可以用命令ls -la /dev/ttyUSB或者ls -la …

java 一文讲透集合框架(10万字博文)

目录 一、前言 二、集合简介 1.定义 : 2.集合与数组的区别 : 3.集合的好处 : 三、集合框架 1.单列集合 2.双列集合 Δ体系图&#xff08;重要&#xff09; 四、List集合详解&#xff08;三万余字&#xff09; 五、Set集合详解&#xff08;三万余字&#xff09; 六、增…

学习实践-Whisper语音识别模型实战(部署+运行)

1、Whisper内容简单介绍 OpenAI的语音识别模型Whisper&#xff0c;Whisper 是一个自动语音识别&#xff08;ASR&#xff0c;Automatic Speech Recognition&#xff09;系统&#xff0c;OpenAI 通过从网络上收集了 68 万小时的多语言&#xff08;98 种语言&#xff09;和多任务…

论文笔记|CVPR2023:Semantic Prompt for Few-Shot Image Recognition

论文地址&#xff1a;https://arxiv.org/pdf/2303.14123.pdf 这是一篇2023年发表在CVPR上的论文&#xff0c;论文题目是Semantic Prompt for Few-Shot Image Recognitio&#xff0c;即用于小样本图像识别的语义提示。 1 Motivation 第一&#xff0c;最近几项研究利用 语义信…

< Linux >:进程地址空间

目录 一、验证进程地址空间 二、感知进程地址空间的存在 一、验证进程地址空间 我们之前学的 C/C 程序地址空间是物理内存吗&#xff1f; 答&#xff1a;不是物理内存&#xff0c;甚至叫做程序地址空间都不太准确&#xff0c;应该叫做进程地址空间&#xff0c;因此根本就不是…

Notion插件,让你的页面有无限可能

// 你是否觉得notion的极简风格略为单调&#xff1f;是否想用notion实现更多的功能&#xff1f;是否想让notion更为便捷&#xff0c;更为多样化&#xff1f;那今天推荐的几款notion插件绝对不能错过&#xff0c;因为他们也确实不错。 // - ———byFutureForce DAO——— - 你…

把ChatGPT接入我的个人网站

效果图 详细内容和使用说明可以查看我的个人网站文章 把ChatGPT接入我的个人网站 献给有外网服务器的小伙伴 如果你本人已经有一台外网的服务器&#xff0c;并且页拥有一个OpenAI API Key&#xff0c;那么下面就可以参照我的教程来搭建一个自己的ChatGPT。 需要的环境 Cento…

让我们一起解密组播、IGMP、IGMP监听

前言&#xff1a;一直对组播这个概念迷迷糊糊&#xff0c;特别是交换机处理组播的方式&#xff0c;非常想搞懂但是懒癌发作。这几天终于耐心地看了下有关组播的资料&#xff0c;大致了解了一下同一广播域内组播的相关知识。组播占了计算机网络的一大部分&#xff0c;特别是组播…

ChatGPT 被大面积封号,到底发生什么了?

意大利数据保护机表示 OpenAI 公司不但非法收集大量意大利用户个人数据&#xff0c;没有设立检查 ChatGPT 用户年龄的机制。 ChatGPT 似乎正在遭遇一场滑铁卢。 3月31日&#xff0c; 大量用户在社交平台吐槽&#xff0c;自己花钱开通的 ChatGPT 账户已经无法登录&#xff0c;更…

举一反三学python(9)—excel基础

一、导论&#xff1a; 操作 excel 表格的Python 第三方库有openpyxl、xlrd、xlwt等&#xff0c;它们的功能都相同&#xff0c;就是语法有差异&#xff0c;今天我就带领大家学习用openpyxl模块操作实用的excel文件。 openpyxl模块为第三方库&#xff0c;首先要安装&#xff1a;p…