日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python實現指定數組下標值正序與倒序排序算法功能舉例_python

作者:小5聊 ? 更新時間: 2023-05-23 編程語言

前言

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

總結:

溫故而知新,入門開發語言,就是需要不斷的把基礎打穩,才能更好的進階!

原文鏈接:https://blog.csdn.net/lmy_520/article/details/129054657

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新