«

Python如何实现指定数组下标值正序与倒序排序

时间:2024-3-8 21:39     作者:韩俊     分类: Python


本篇内容主要讲解“Python如何实现指定数组下标值正序与倒序排序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现指定数组下标值正序与倒序排序”吧!

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}
')
print(f'逆序输出={listNew}
')

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

热门推荐