溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序

發(fā)布時間:2023-02-25 10:21:16 來源:億速云 閱讀:113 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序”吧!

    1、知識點

    在實現(xiàn)自定義排序前,先來了解下基本的知識點和簡單舉例!

    編號語言或插件修飾符說明
    1pythondef定義方法關(guān)鍵詞
    2pythonlist()數(shù)列,就是數(shù)組,方括號括起來值,遍歷只能獲取到值
    3pythontule()元組,括號括起來值,遍歷可獲取到值和下標(biāo)
    4pythonenumerate()函數(shù)用于遍歷序列中的元素以及它們的索引
    5pythonlen()統(tǒng)計長度
    6python逆序小技巧[1,2,3,4,5][::-1]

    2、數(shù)列和元組

    2.1、錯誤遍歷方式

    list,數(shù)列,結(jié)合for循環(huán)遍歷時,只能遍歷值,無法獲取到下標(biāo),如下方式會報錯

    定義變量并賦值:list=['python','is','very','good','code']

    Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序

    2.2、正確遍歷方式

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

    Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序

    2.3、下標(biāo)方式遍歷

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

    Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序

    代碼如下

    #!/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}')

    Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序

    2.5、逆序技巧

    數(shù)列逆序輸出小技巧,-1表示從最后一個值反序輸出
    [1,2,3,4,5][::-1]

    Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序

    #!/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、實現(xiàn)效果

    通過上面的一些知識點了解,即可完成數(shù)列的自定義正序排序和逆序排序

    通過指定下標(biāo)進行輸出,并可設(shè)置逆序輸出

    Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序

    完整代碼如下

    #!/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希爾排序是插入排序的一種又稱“縮小增量排序

    到此,相信大家對“Python如何實現(xiàn)指定數(shù)組下標(biāo)值正序與倒序排序”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

    向AI問一下細節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI