当前位置:主页 > python教程 > Python指定数组下标值正序与倒序排序

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

发布:2023-04-03 09:05:01 59


本站精选了一篇相关的编程文章,网友冯光熙根据主题投稿了本篇教程内容,涉及到python指定数组下标值正序与倒序排序、python数组逆序、python、数组倒序、Python指定数组下标值正序与倒序排序相关内容,已被394网友关注,内容中涉及的知识点可以在下方直接下载获取。

Python指定数组下标值正序与倒序排序

前言

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

1、知识点

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

编号语言或插件修饰符说明
1pythondef定义方法关键词
2pythonlist()数列,就是数组,方括号括起来值,遍历只能获取到值
3pythontule()元组,括号括起来值,遍历可获取到值和下标
4pythonenumerate()函数用于遍历序列中的元素以及它们的索引
5pythonlen()统计长度
6python逆序小技巧[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指定数组下标值正序与倒序排序内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • python2与python3的区别点总结

    发布:2019-06-13

    python2:print语句,语句就意味着可以直接跟要打印的东西而python3:print函数,函数就以为这必须要加上括号才能调用。下面通过本文给大家介绍python2与python3的简单区别,感兴趣的朋友跟随小编一


  • 解析Python3之对象垃圾收集机制

    发布:2020-02-17

    在Python中,它在每个对象中保持了一个计数器,用于记录指向该对象的的引用的个数。这篇文章主要介绍了Python3中的对象垃圾收集机制,需要的朋友可以参考下


  • 基于Python绘制三种不同的中国结

    发布:2023-03-03

    马上就要迎来新年了,就绘制了几个中国结,嘿嘿!本文为大家整理了三个绘制中国结的方法,文中的示例代码讲解详细,快跟随小编一起动手尝试一下吧


  • 通过Python实现一个A/B测试详解

    发布:2023-04-26

    A/B测试,通过分析两种不同的营销策略,以此来选择最佳的营销策略,可以高效地将流量转化为销售额。本文主要介绍了如何通过Python实现一个A/B测试,感兴趣的可以了解一下


  • Python设计模式中抽象工厂模式原理和用法

    发布:2019-06-20

    这篇文章主要介绍了Python设计模式之抽象工厂模式,简单讲述了抽象工厂模式的概念、原理并结合实例形式分析了Python实现与使用抽象工厂模式的相关操作技巧,需要的朋友可以参考下


  • 如何使用Python+ChatGPT批量生成论文

    发布:2023-03-24

    这篇文章主要介绍了用Python+ChatGPT批量生成论文,我用python+GPT-3 API开发了一个工具,可以直接从arxiv地址生成论文概述,需要的朋友可以参考下


  • python工具Mimesis的简单使用教程

    发布:2021-05-21

    这篇文章主要介绍了python工具——Mimesis的简单使用教程,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下


  • python的简单日期工具类详解

    发布:2020-02-29

    这篇文章主要为大家详细介绍了python实现简单日期工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


网友讨论