Python實(shí)現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序算法功能舉例
前言
在本次python文章中,主要通過定義一個排序方法,實(shí)現(xiàn)一組數(shù)列能夠按照另一組數(shù)列指定的位置進(jìn)行重新排序輸出,默認(rèn)正序排序,可通過True表示逆序輸出
1、知識點(diǎn)
??在實(shí)現(xiàn)自定義排序前,先來了解下基本的知識點(diǎn)和簡單舉例!
| 編號 | 語言或插件 | 修飾符 | 說明 |
|---|---|---|---|
| 1 | python | def | 定義方法關(guān)鍵詞 |
| 2 | python | list() | 數(shù)列,就是數(shù)組,方括號括起來值,遍歷只能獲取到值 |
| 3 | python | tule() | 元組,括號括起來值,遍歷可獲取到值和下標(biāo) |
| 4 | python | enumerate() | 函數(shù)用于遍歷序列中的元素以及它們的索引 |
| 5 | python | len() | 統(tǒng)計(jì)長度 |
| 6 | python | 逆序小技巧 | [1,2,3,4,5][::-1] |
2、數(shù)列和元組
2.1、錯誤遍歷方式
list,數(shù)列,結(jié)合for循環(huán)遍歷時,只能遍歷值,無法獲取到下標(biāo),如下方式會報錯
定義變量并賦值:list=['python','is','very','good','code']

2.2、正確遍歷方式
對于以為數(shù)組,for循環(huán)遍歷,直接就是值,而不是下標(biāo)

2.3、下標(biāo)方式遍歷
可以獲取數(shù)組長度,然后結(jié)合for和range通過下標(biāo)0開始進(jìn)行遍歷,如下

代碼如下
#!/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'下標(biāo)={index},值={value}')
2.4、enumerate方式遍歷
還有一種方式就是將數(shù)列和元組通過enumerate方式遍歷
格式,注意順序,第一個是索引,第二個參數(shù)是值:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2023-02-16
list=['python','is','very','good','code']
for index,value in enumerate(list):
print(f'下標(biāo)={index},值={value}')

2.5、逆序技巧
數(shù)列逆序輸出小技巧,-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、自定義排序規(guī)則
1)按照order的元素作為lst對應(yīng)位置的元素的應(yīng)該順序
2)并按照該順序重新排列l(wèi)st,返回排序后的結(jié)果列表
3)支持逆序
4、自定義排序編碼
4.1、函數(shù)命名
定義函數(shù)名為,sort_by
def sort_by(lst:list, order:list, reverse=False)->list:
pass
4.2、定義變量
定義兩組list數(shù)列如下
list=['python','is','very','good','code'] numValue=[19,95,11,29,5,26,3,6]
4.3、實(shí)現(xiàn)效果
通過上面的一些知識點(diǎn)了解,即可完成數(shù)列的自定義正序排序和逆序排序
通過指定下標(biāo)進(jìn)行輸出,并可設(shè)置逆序輸出

完整代碼如下
#!/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 | 插入排序 | 插入到已經(jīng)排好序的有序表中 |
| 2 | 選擇排序 | 選最小或最大放到排序位置 |
| 3 | 冒泡排序 | 重復(fù)地走訪過要排序的元素列 |
| 4 | 歸并排序 | 將已有序的子序列合并,得到完全有序的序列 |
| 5 | 快速排序 | 通過分界值將數(shù)組分成左右兩部分 |
| 6 | 希爾排序 | 是插入排序的一種又稱“縮小增量排序 |

總結(jié):
溫故而知新,入門開發(fā)語言,就是需要不斷的把基礎(chǔ)打穩(wěn),才能更好的進(jìn)階!
到此這篇關(guān)于Python實(shí)現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序算法功能的文章就介紹到這了,更多相關(guān)Python指定數(shù)組下標(biāo)值正序與倒序排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyMongo進(jìn)行MongoDB查詢和插入操作的高效使用示例
這篇文章主要為大家介紹了PyMongo進(jìn)行MongoDB查詢和插入操作的高效使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Python三目運(yùn)算符(三元運(yùn)算符)用法詳解(含實(shí)例代碼)
三元運(yùn)算符在Python里被稱為條件表達(dá)式,這些表達(dá)式基于真(true)/假(false)的條件判斷,在Python 2.4以上才有了三元操作,下面這篇文章主要給大家介紹了關(guān)于Python三目運(yùn)算符(三元運(yùn)算符)用法的相關(guān)資料,需要的朋友可以參考下2023-02-02
使用Python文件讀寫,自定義分隔符(custom delimiter)
這篇文章主要介紹了使用Python文件讀寫,自定義分隔符(custom delimiter),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
python用socket實(shí)現(xiàn)協(xié)議TCP長連接框架
大家好,本篇文章主要講的是python用socket實(shí)現(xiàn)協(xié)議TCP長連接框架,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02
python爬蟲系列Selenium定向爬取虎撲籃球圖片詳解
這篇文章主要介紹了python爬蟲系列Selenium定向爬取虎撲籃球圖片詳解,具有一定參考價值,喜歡的朋友可以了解下。2017-11-11
Python實(shí)現(xiàn)的監(jiān)測服務(wù)器硬盤使用率腳本分享
這篇文章主要介紹了Python實(shí)現(xiàn)的監(jiān)測服務(wù)器硬盤使用率腳本分享,本文腳本適應(yīng)windows和linux系統(tǒng),需要的朋友可以參考下2014-11-11

