目录
- 前言
- 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 |
希尔排序 |
是插入排序的一种又称“缩小增量排序 |

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