Python实现指定数组下标值正序与倒序排序算法功能举例

目录
  • 前言
  • 1、知识点
  • 2、数列和元组
    • 2.1、错误遍历方式
    • 2.2、正确遍历方式
    • 2.3、下标方式遍历
    • 2.4、enumerate方式遍历
    • 2.5、逆序技巧
  • 3、自定义排序规则
  • 4、自定义排序编码
    • 4.1、函数命名
    • 4.2、定义变量
    • 4.3、实现效果
  • 5、常见排序算法
  • 总结:

前言

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

1、知识点

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

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

2、数列和元组

2.1、错误遍历方式

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

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

2.2、正确遍历方式

对于以为数组,for循环遍历,直接就是值,而不是下标

2.3、下标方式遍历

可以获取数组长度,然后结合for和range通过下标0开始进行遍历,如下

代码如下

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16

list=['python','is','very','good','code']

listLength=len(list)
for index in range(listLength):
    value=list[index]
    print(f'下标={index},值={value}')

2.4、enumerate方式遍历

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

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

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16

list=['python','is','very','good','code']

for index,value in enumerate(list):
    print(f'下标={index},值={value}')

2.5、逆序技巧

数列逆序输出小技巧,-1表示从最后一个值反序输出
[1,2,3,4,5][::-1]

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16

list=['python','is','very','good','code']
listNew=list[::-1]
print(f'正序输出={list}\r\n')
print(f'逆序输出={listNew}\r\n')

3、自定义排序规则

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

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

3)支持逆序

4、自定义排序编码

4.1、函数命名

定义函数名为,sort_by

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

4.2、定义变量

定义两组list数列如下

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

4.3、实现效果

通过上面的一些知识点了解,即可完成数列的自定义正序排序和逆序排序

通过指定下标进行输出,并可设置逆序输出

完整代码如下

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16
import sys 

def sort_by(lst:list, order:list, reverse=False) -> list:
    pass
    new_list = []
    for i in range(len(lst)):
        new_list.append(i)
    for index,value in enumerate(lst):
        position = order[index] - 1
        new_list[position] = value

    if reverse==True:
        return new_list[::-1]
    else:
        return new_list

list=['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指定数组下标值正序与倒序排序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现获取乱序列表排序后的新下标的示例

    对一个列表list而言,进行排序是很简单的.正序排序(从小到大)用 list.sort() 倒序排序(从大到小)用 list.sort(reverse=True) 但是如果不仅限于得到一个排完序的列表,还希望记录原本的下标,那么对于一个numpy.array而言,可以用 np.argsort() 比如[1,3,2,5,6] 排序后变成[1,2,3,5,6] 但是我们想知道排序后的结果对应原本的下标是什么(答案是[0,2,1,3,4]),就可以用np.argsort() 但是如果就是个简单的lis

  • Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)

    通常测试人员或公司实习人员需要处理一些txt文本内容,而此时使用Python是比较方便的语言.它不光在爬取网上资料上方便,还在NLP自然语言处理方面拥有独到的优势.这篇文章主要简单的介绍使用Python处理txt汉字文字.二维列表排序和获取list下标.希望文章对你有所帮助或提供一些见解~ 一. list二维数组排序 功能:已经通过Python从维基百科中获取了国家的国土面积和排名信息,此时需要获取国土面积并进行排序判断世界排名是否正确. 列表基础知识 列表类型同字符串一样也是序列式的数据类型,

  • Python实现指定数组下标值正序与倒序排序算法功能举例

    目录 前言 1.知识点 2.数列和元组 2.1.错误遍历方式 2.2.正确遍历方式 2.3.下标方式遍历 2.4.enumerate方式遍历 2.5.逆序技巧 3.自定义排序规则 4.自定义排序编码 4.1.函数命名 4.2.定义变量 4.3.实现效果 5.常见排序算法 总结: 前言 在本次python文章中,主要通过定义一个排序方法,实现一组数列能够按照另一组数列指定的位置进行重新排序输出,默认正序排序,可通过True表示逆序输出 1.知识点 ️在实现自定义排序前,先来了解下基本的知识点和简单

  • python获取指定目录下所有文件名列表的方法

    本文实例讲述了python获取指定目录下所有文件名列表的方法.分享给大家供大家参考.具体实现方法如下: 这里python代码实现获取文件名列表的功能,可以指定文件中包含的字符,方便提取特定类型的文件名列表: # -*- coding: utf-8 -*- #~ #------------------------------------------------------------------ #~ module:wlab #~ Filename:wgetfilelist.py #~ Funct

  • Python读取指定目录下指定后缀文件并保存为docx

    最近有个奇葩要求 要项目中的N行代码 申请专利啥的 然后作为程序员当然不能复制粘贴 用代码解决.. 使用python-docx读写docx文件 环境使用python3.6.0 首先pip安装python-docx pip install python-docx 然后下面是脚本 修改目录,这里默认取脚本运行目录下的src文件夹 取.cs后缀的所有文件 读取并保存为docx 有一点需要注意,如果文件中有中文,请用vscode或者其他编辑器使用utf-8格式打开,看看有没有乱码 其中每处理一个文件都会

  • python对指定目录下文件进行批量重命名的方法

    本文实例讲述了python对指定目录下文件进行批量重命名的方法.分享给大家供大家参考.具体如下: 这段python代码可对c:\temp目录下的所有文件名为"scroll_1"文件替换为"scroll_00" import os path = 'c:\\temp' for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True: newname = file.replace

  • python获取指定路径下所有指定后缀文件的方法

    本文实例讲述了python获取指定路径下所有指定后缀文件的方法.分享给大家供大家参考.具体实现方法如下: # 获取指定路径下所有指定后缀的文件 # dir 指定路径 # ext 指定后缀,链表&不需要带点 或者不指定.例子:['xml', 'java'] def GetFileFromThisRootDir(dir,ext = None): allfiles = [] needExtFilter = (ext != None) for root,dirs,files in os.walk(dir

  • python在指定目录下查找gif文件的方法

    本文实例讲述了python在指定目录下查找gif文件的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # Use the standard find method to look for GIF files. import sys, find if len(sys.argv) > 1: dirs = sys.argv[1:] else: dirs = [ '.' ] # Go for it. for dir in dirs: files = find.find

  • 使用Python监视指定目录下文件变更的方法

    监视指定目录下文件变更. # -*- coding: utf-8 -*- # @Author: xiaodong # @Date: just hide # @Last Modified by: xiaodong # @Last Modified time: just hide import os import glob import json import datetime from typing import Iterable """ 监视指定目录下文件变更 "&

  • Lua实现正序和倒序的文件读取方法

    --table 特性 -- 使用table生成正序和倒序的链表 -- 使用table生成链表 list = nil local file = io.open("table.lua","r") -->打开本本件 pre = nil --将本文件按行顺序读入list中 for line in file:lines() do current = {next = nil,value = line} pre = pre or current list = list or

  • Python实现查找数组中任意第k大的数字算法示例

    本文实例讲述了Python实现查找数组中任意第k大的数字算法.分享给大家供大家参考,具体如下: 模仿partion方法,当high=low小于k的时候,在后半部分搜索,当high=low大于k的时候,在前半部分搜索.与快排不同的是,每次都减少了一半的排序. def partitionOfK(numbers, start, end, k): if k < 0 or numbers == [] or start < 0 or end >= len(numbers) or k > end

  • Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例

    本文实例讲述了Python实现的插入排序,冒泡排序,快速排序,选择排序算法.分享给大家供大家参考,具体如下: #!/usr/bin/python # coding:utf-8 #直接插入排序 def insert_sort(list): for i in range(len(list)): Key = list [i] #待插入元素 j = i - 1 while(Key < list[j] and j >= 0): list[j+1] = list[j] #后移元素 list[j] = Ke

随机推荐