当前位置: 首页 > news >正文

【Python】编写代码实现指定下标值顺序进行正序和倒序排序算法编程

🎉🎉 在本次python文章中,主要通过定义一个排序方法,实现一组数列能够按照另一组数列指定的位置进行重新排序输出,默认正序排序,可通过True表示逆序输出

目录

      • 1、知识点
      • 2、数列和元组
        • 1)错误遍历方式
        • 2)正确遍历方式
        • 3)下标方式遍历
        • 4)enumerate方式遍历
        • 5)逆序技巧
      • 3、自定义排序规则
      • 4、自定义排序编码
        • 1)函数命名
        • 2)定义变量
        • 3)实现效果
      • 5、常见排序算法

1、知识点

⭐️在实现自定义排序前,先来了解下基本的知识点和简单举例!

编号语言或插件修饰符说明
1pythondef定义方法关键词
2pythonlist()数列,就是数组,方括号括起来值,遍历只能获取到值
3pythontule()元组,括号括起来值,遍历可获取到值和下标
4pythonenumerate()函数用于遍历序列中的元素以及它们的索引
5pythonlen()统计长度
6python逆序小技巧[1,2,3,4,5][::-1]

2、数列和元组

1)错误遍历方式

list,数列,结合for循环遍历时,只能遍历值,无法获取到下标,如下方式会报错

定义变量并赋值:list=['python','is','very','good','code']

在这里插入图片描述

2)正确遍历方式

对于以为数组,for循环遍历,直接就是值,而不是下标
在这里插入图片描述

3)下标方式遍历

可以获取数组长度,然后结合for和range通过下标0开始进行遍历,如下
在这里插入图片描述

  • 代码如下
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16list=['python','is','very','good','code']listLength=len(list)
for index in range(listLength):value=list[index]print(f'下标={index},值={value}')

4)enumerate方式遍历

还有一种方式就是将数列和元组通过enumerate方式遍历

格式,注意顺序,第一个是索引,第二个参数是值:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16list=['python','is','very','good','code']for index,value in enumerate(list):print(f'下标={index},值={value}')

在这里插入图片描述

5)逆序技巧

数列逆序输出小技巧,-1表示从最后一个值反序输出
[1,2,3,4,5][::-1]
在这里插入图片描述

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16list=['python','is','very','good','code']
listNew=list[::-1]
print(f'正序输出={list}\r\n')
print(f'逆序输出={listNew}\r\n')

🏆🏆 原则:Write Less Do More!
📋📋 简介:一只喜欢全栈方向的程序员,专注基础和实战分享,欢迎咨询,尽绵薄之力答疑解惑!

3、自定义排序规则

1)按照order的元素作为lst对应位置的元素的应该顺序

2)并按照该顺序重新排列lst,返回排序后的结果列表

3)支持逆序

4、自定义排序编码

1)函数命名

定义函数名为,sort_by

def sort_by(lst:list, order:list, reverse=False)->list:pass

2)定义变量

定义两组list数列如下

list=['python','is','very','good','code']
numValue=[19,95,11,29,5,26,3,6]

3)实现效果

通过上面的一些知识点了解,即可完成数列的自定义正序排序和逆序排序
通过指定下标进行输出,并可设置逆序输出
在这里插入图片描述

  • 完整代码如下
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16
import sys def sort_by(lst:list, order:list, reverse=False) -> list:passnew_list = []for i in range(len(lst)):new_list.append(i)for index,value in enumerate(lst):position = order[index] - 1new_list[position] = valueif reverse==True:return new_list[::-1]else:return new_listlist=['python','is','very','good','code']
numValue=[3,2,1,5,4]print(sort_by(list, numValue)) print(sort_by(list, numValue, True)) 

5、常见排序算法

编号算法名称说明
1插入排序插入到已经排好序的有序表中
2选择排序选最小或最大放到排序位置
3冒泡排序重复地走访过要排序的元素列
4归并排序将已有序的子序列合并,得到完全有序的序列
5快速排序通过分界值将数组分成左右两部分
6希尔排序是插入排序的一种又称“缩小增量排序

在这里插入图片描述

总结:温故而知新,入门开发语言,就是需要不断的把基础打稳,才能更好的进阶!

相关文章:

【Python】编写代码实现指定下标值顺序进行正序和倒序排序算法编程

🎉🎉 在本次python文章中,主要通过定义一个排序方法,实现一组数列能够按照另一组数列指定的位置进行重新排序输出,默认正序排序,可通过True表示逆序输出 目录1、知识点2、数列和元组1)错误遍历方…...

Sitara™处理器的产品开发路线图

Sitara™处理器的产品开发路线图概述Evaluation Phase(评估阶段)Board Development Phase(硬件发展阶段,硬件设计人员应重点关注这个阶段)Software Development Phase(软件发展阶段)Product Phase/SW Lifecycle概述 一般情况下,会存在四个主要的发展阶段…...

岗位来啦-华为研发OD招聘

研发OD招聘 ★★关于我们★★ 万物互联时代已到来,无线通信技术正在重塑世界。作为行业领导者,华为无线致力于通过移动创新消除数字鸿沟,构建万物互联的智能世界。基于5G的技术,家庭无线宽带接入、车联网、云AR/VR、eMBB高清视频…...

【LeetCode】剑指 Offer 06. 从尾到头打印链表 p58 -- Java Version

题目链接: https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/ 1. 题目介绍(06. 从尾到头打印链表) 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 【测试用例…...

童年回忆--扫雷(包括标记功能和递归展开)--万字讲解让你学会扫雷制作

魔王的介绍:😶‍🌫️一名双非本科大一小白。魔王的目标:🤯努力赶上周围卷王的脚步。魔王的主页:🔥🔥🔥大魔王.🔥🔥🔥 ❤️‍&#x1…...

【重器】GPS北斗卫星时钟基准与卫星授时服务技术原理

【重器】GPS北斗卫星时钟基准与卫星授时服务技术原理 【重器】GPS北斗卫星时钟基准与卫星授时服务技术原理 1.前言 由计算机网络系统组成的分布式系统,若想协调一致进行:IT行业的“整点开拍”、“秒杀”、“Leader选举”,通信行业的“同步组网…...

软件测试未来发展趋势怎么样

未来,互联网技术是很多企业能够活下去的关键点。互联网技术成为新的基建,互联网“基建”化就决定了软件测试行业的缺口会一直扩大。 并且,软件测试岗位,已不仅局限于互联网企业,现已逐步深入到实体产业,金…...

aws Distro for OpenTelemetry 可观测性workshop记录

参考资料 https://aws-otel.github.io/docs/introductionhttps://aws-otel.github.io/docs/introduction aws distro for opentelemetry 官方提供了不同语言不同使用场景下完善的使用实例和相关配置。 AWS Distro for OpenTelemetrics 由以下部分组成,用于向后端…...

Leetcode力扣秋招刷题路-0068

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 68. 文本左右对齐 给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该…...

Nginx介绍及安装(windows版,Linux版)

目录 一、Nginx介绍 1、Nginx优势 2、Nginx作用 3、部署静态资源 4、代理 5、负载均衡 二、Nginx安装步骤(windows版) 三、Nginx安装步骤(Linux版) 1、官网下载安装包,下载完之后上传到Linux系统上 2、在Lin…...

Camera | 4.瑞芯微平台MIPI摄像头应用程序编写

前面3篇我们讲解了camera的基础概念,MIPI协议,CSI2,常用命令等,本文带领大家入门,如何用c语言编写应用程序来操作摄像头。 Linux下摄像头驱动都是基于v4l2架构,要基于该架构编写摄像头的应用程序&#xff…...

【1250. 检查「好数组」】

来源:力扣(LeetCode) 描述: 给你一个正整数数组 nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个 任意整数,并求出他们的和。 假如该和结果为 1,那么原数组就是一个「…...

Spring 如何解决循环依赖?

什么是循环依赖 ? 一个或多个对象之间存在直接或间接的依赖关系,这种依赖关系构成一个环形调用,有下面 3 种方式。 我们看一个简单的 Demo,对标“情况 2”。 Service public class Louzai1 {Autowiredprivate Louzai2 louzai2;…...

CocoaPods使用指南

前言 对于大多数软件开发团队来说,依赖管理工具必不可少,它能针对开源和私有依赖进行安装与管理,从而提升开发效率,降低维护成本。针对不同的语言与平台,其依赖管理工具也各有不同,例如 npm 管理 Javascri…...

Kafka 消息队列

目录主流的消息队列消息队列的应用场景缓存/肖锋解耦异步处理KafkaKafka的定义Kafka的底层基础架构Kafka分区如何保证Leader选举Kafka分区如何保证Leader和Follower数据的一致性Kafka 中消费者的消费方式Kafka 高效读写数据的原因(高性能吞吐的原因)&…...

华为OD机试 - 挑选字符串(Python)| 真题+思路+考点+代码+岗位

挑选字符串 题目 给定a-z,26 个英文字母小写字符串组成的字符串A和B, 其中A可能存在重复字母,B不会存在重复字母, 现从字符串A中按规则挑选一些字母可以组成字符串B 挑选规则如下: 同一个位置的字母只能挑选一次, 被挑选字母的相对先后顺序不能被改变, 求最多可以同时…...

对比Hashtable、HashMap、TreeMap有什么不同?

第9讲 | 对比Hashtable、HashMap、TreeMap有什么不同? Map 是广义 Java 集合框架中的另外一部分,HashMap 作为框架中使用频率最高的类型之一,它本身以及相关类型自然也是面试考察的热点。 今天我要问你的问题是,对比 Hashtable、…...

测试新版Android Studio的手机镜像效果

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为669字,预计阅读2分钟 前言 春节刚上班,就开始了疯狂出差的节奏,期间发现Android Studio发布新的版本2022.1.1(Electric Eel),里面两个更新的内容蓝牙模拟器和…...

女生可以参加IT培训吗?

2023年了,就不要把性别当作选择专业的前提条件了。虽然这句话说过很多次了,作为IT行业来说,是非常欢迎女生的加入;尤其是整天都是面对一大堆男攻城狮,工作氛围一点都不活跃,反而显得压抑和杂乱,…...

刷题25-重排链表

重排链表 解题思路:通过观察链表可以发现,把链表一分为二,后半段链表反转,然后两个链表穿插连接,当链表的节点总数是奇数时,要保证链表的前半段比后半段多一个节点。 关于把链表一分为二,可以…...

VHDL-延迟模型-惯性延迟与传输延迟

目录 1,惯性延时 2,传输延时 信号通过元件都会有延迟,延迟时间的计算是逻辑仿真的重要功能。考虑延迟信息得到的仿真输出波形可以更精确地反映实际电路的情况。针对元件的延时,人们根据需要建立了一些用的延时模型,这…...

2023年美赛(MCM/ICM)简介

2023年美赛将要如期开赛,这里为了 让大家对今年的美赛有一个直接 客观的了解。对2023年美赛(MCM/ICM)进行一下简要的介绍。相关资料大家可以查看另一篇文章一、竞赛时间February 16-20, 2023开赛时间 北京时间 17号(本周五) 6:00结束时间 北京时间 21号(…...

5min完成linux环境Jenkins的安装

5min搞定linux环境Jenkins的安装安装Jenkinsstep1: 使用wget 命令下载Jenkinsstep2、创建Jenkins日志目录并运行jekinsstep3、访问jenkins并解锁jenkins,安装插件以及创建管理员用户step4、到此,就完成了Finish、以上步骤中遇到的问题1、 jenkins启动不了…...

华为OD机试 - 字母计数(Python)| 真题+思路+考点+代码+岗位

字母计数 题目 给出一个只包含字母的字符串, 不包含空格,统计字符串中各个子字母(区分大小写)出现的次数, 并按照字母出现次数从大到小的顺序输出各个字母及其出现次数 如果次数相同,按照自然顺序排序,且小写字母在大写字母之前 输入 输入一行仅包含字母的字符串 输出 按…...

DENSE 数据集 - STF 数据集(CVPR 2020)

DENSE 数据集 - STF 数据集 - Seeing Through Fog Without Seeing Fog: Deep Multimodal Sensor Fusion in Unseen Adverse Weather(CVPR 2020)摘要1. 引言2. 相关工作3. 多模式恶劣天气数据集3.1 多模态传感器设置3.2 记录4. 自适应深度融合4.1 自适应多…...

华为OD机试 - 静态扫描最优成本(Python)| 真题+思路+考点+代码+岗位

静态扫描最优成本 题目 静态扫描快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出: 文件扫描的成本和文件大小相关,如果文件大小为 N ,则扫描成本为 N 个金币扫描报告的缓存成本和文件大小无关,每缓存一个报告需要 M 个金币扫描报告缓存后,后继再碰到该文件则不…...

【ns-3】零基础安装教程

文章目录前言1. 安装虚拟机及Ubuntu2. 安装依赖库3. 下载ns-34. 构建ns-3前言 近期因工作需要开始接触ns-3。作者零基础,从零开始顺利完成了ns-3的安装。本篇为ns-3安装过程记录贴或针对小白的零基础教程。 本篇内容所使用到的软件版本信息如下:VMware…...

华为OD机试 - 新学校选址(Python)| 真题+思路+考点+代码+岗位

新学校选址 题目 为了解新学期学生暴涨的问题,小乐村要建立所新学校 考虑到学生上学安全问题,需要所有学生家到学校的距离最短. 假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置, 能使得到学校到各个学生家的距离和最短 输入 第一行: 整数 n 取值范围 [1,1…...

华为OD机试 - 最长合法表达式(Python)| 真题+思路+考点+代码+岗位

最长合法表达式 题目 提取字符串中的最长合法简单数学表达式, 字符串长度最长的,并计算表达式的值。 如果没有返回0. 简单数学表达式只能包含以下内容: 0-9数字,符号+-* 说明: 所有数字,计算结果都不超过long如果有多个长度一样的,请返回第一个表达式的结果数学表达式…...

夭寿啦!我的网站被攻击了了735200次还没崩

记得有一个看到鱼皮的网站被攻击,那时候我只是一个小小号,还在调侃,没想到我居然也有那么一天! 突袭 一个风和日丽中午,我正在和同事吃饭,一个内存oom,我的小破站崩溃了。 虽然天天被攻击吧&a…...

前潮网络网站建设/网络营销的八种方式

接触React项目快两个月了,还在研究摸索各种知识点的过程中,充实且幸福。 在项目中学习新知识,还是很有效率的,一边写项目,一边实验新的知识点,比如react hooks!嘻嘻嘻~~~ 写了好一段时间class组…...

做网站的工作/靠谱的免费建站

继 2014 年 3 月 Java 8 发布之后,时隔 4 年,2018 年 9 月,Java 11 如期发布,其间间隔了 Java 9 和 Java 10 两个非LTS(Long Term Support)版本。作为最新的LTS版本,相比 Java 8,Java 11 包含了模块系统、改…...

wordpress 浮层/安卓手机优化大师官方下载

传送门 神仙题啊……不看题解我可能一年都不一定做得出来……FlashHu大佬太强啦 到底是得有怎样的脑回路才能一眼看去就是费用流啊…… 建好图之后套个板子就好了,那么我们着重来讨论一下怎么建图 首先,对于每一个水管的支管,有且仅有一个其他…...

个人网站简单/个人免费网站建设

临近年底,人们日益关注格力董事长董明珠与小米董事长雷军的10亿赌约谁将赢的问题,其实当下对格力最不利的是它的直接竞争对手美的正凭借多元化的优势在利润方面快速缩短与格力的差距,而此前在营收方面前者已将后者甩开一大截距离,…...

做网站的怎样能翻页/宁波seo推广哪家好

一、什么是敏捷宣言? 敏捷宣言(Manifesto for Agile Software Development),也叫做敏捷软件开发宣言,正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法。敏捷软件开发关注保持…...

网站的建设与设计论文/申请友情链接

时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 64M,其他语言128M 热度指数:514583 本题知识点: 分治 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新…...