Python實(shí)現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序算法功能舉例
前言
在本次python文章中,主要通過(guò)定義一個(gè)排序方法,實(shí)現(xiàn)一組數(shù)列能夠按照另一組數(shù)列指定的位置進(jìn)行重新排序輸出,默認(rèn)正序排序,可通過(guò)True表示逆序輸出
1、知識(shí)點(diǎn)
??在實(shí)現(xiàn)自定義排序前,先來(lái)了解下基本的知識(shí)點(diǎn)和簡(jiǎn)單舉例!
編號(hào) | 語(yǔ)言或插件 | 修飾符 | 說(shuō)明 |
---|---|---|---|
1 | python | def | 定義方法關(guān)鍵詞 |
2 | python | list() | 數(shù)列,就是數(shù)組,方括號(hào)括起來(lái)值,遍歷只能獲取到值 |
3 | python | tule() | 元組,括號(hào)括起來(lái)值,遍歷可獲取到值和下標(biāo) |
4 | python | enumerate() | 函數(shù)用于遍歷序列中的元素以及它們的索引 |
5 | python | len() | 統(tǒng)計(jì)長(zhǎng)度 |
6 | python | 逆序小技巧 | [1,2,3,4,5][::-1] |
2、數(shù)列和元組
2.1、錯(cuò)誤遍歷方式
list,數(shù)列,結(jié)合for循環(huán)遍歷時(shí),只能遍歷值,無(wú)法獲取到下標(biāo),如下方式會(huì)報(bào)錯(cuò)
定義變量并賦值:list=['python','is','very','good','code']
2.2、正確遍歷方式
對(duì)于以為數(shù)組,for循環(huán)遍歷,直接就是值,而不是下標(biāo)
2.3、下標(biāo)方式遍歷
可以獲取數(shù)組長(zhǎng)度,然后結(jié)合for和range通過(guò)下標(biāo)0開(kāi)始進(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ù)列和元組通過(guò)enumerate方式遍歷
格式,注意順序,第一個(gè)是索引,第二個(gè)參數(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表示從最后一個(gè)值反序輸出[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對(duì)應(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)效果
通過(guò)上面的一些知識(shí)點(diǎn)了解,即可完成數(shù)列的自定義正序排序和逆序排序
通過(guò)指定下標(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、常見(jiàn)排序算法
編號(hào) | 算法名稱 | 說(shuō)明 |
---|---|---|
1 | 插入排序 | 插入到已經(jīng)排好序的有序表中 |
2 | 選擇排序 | 選最小或最大放到排序位置 |
3 | 冒泡排序 | 重復(fù)地走訪過(guò)要排序的元素列 |
4 | 歸并排序 | 將已有序的子序列合并,得到完全有序的序列 |
5 | 快速排序 | 通過(guò)分界值將數(shù)組分成左右兩部分 |
6 | 希爾排序 | 是插入排序的一種又稱“縮小增量排序 |
總結(jié):
溫故而知新,入門開(kāi)發(fā)語(yǔ)言,就是需要不斷的把基礎(chǔ)打穩(wěn),才能更好的進(jìn)階!
到此這篇關(guān)于Python實(shí)現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序算法功能的文章就介紹到這了,更多相關(guān)Python指定數(shù)組下標(biāo)值正序與倒序排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?OpenCV超詳細(xì)講解圖像堆疊的實(shí)現(xiàn)
OpenCV用C++語(yǔ)言編寫,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實(shí)時(shí)視覺(jué)應(yīng)用,并在可用時(shí)利用MMX和SSE指令,本篇文章帶你通過(guò)OpenCV實(shí)現(xiàn)圖像堆疊2022-04-04python爬蟲(chóng)scrapy基本使用超詳細(xì)教程
這篇文章主要介紹了python爬蟲(chóng)scrapy基本使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02python基礎(chǔ)_文件操作實(shí)現(xiàn)全文或單行替換的方法
下面小編就為大家?guī)?lái)一篇python基礎(chǔ)_文件操作實(shí)現(xiàn)全文或單行替換的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09教你利用Python+Turtle繪制簡(jiǎn)易版愛(ài)心表白
這篇文章主要介紹了教你利用Python+Turtle繪制簡(jiǎn)易版愛(ài)心表白,文中有非常詳細(xì)的代碼示例,對(duì)想要和男朋友或者女朋友表白的小伙伴們有很大幫助喲,需要的朋友可以參考下2021-04-04Python中創(chuàng)建數(shù)值列表的4種方法總結(jié)
在Python中列表(List)是一種有序、可變的數(shù)據(jù)類型,被廣泛用于存儲(chǔ)和處理多個(gè)元素,這篇文章主要給大家介紹了關(guān)于Python中創(chuàng)建數(shù)值列表的4種方法,需要的朋友可以參考下2024-05-0560行Python PyGame代碼實(shí)現(xiàn)簡(jiǎn)單的迷宮游戲
這篇文章主要為大家詳細(xì)介紹如何通過(guò)了60行Python PyGame代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單的迷宮游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2023-12-12