網站首頁 編程語言 正文
前言
在本次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
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-01-05 webpack——Loader示例:打包css文件
- 2022-11-08 云原生系列Kubernetes深度解析YAML文件使用_云其它
- 2023-02-10 Python中如何自定義函數_python
- 2022-08-29 Linux安裝Docker詳細教程_docker
- 2022-05-28 C語言?超詳細講解庫函數_C 語言
- 2023-07-28 Cannot read properties of undefined (reading ‘push
- 2021-12-12 【Groovy】集合遍歷 ( 使用集合的 eachWithIndex 方法進行遍歷 | 代碼示例 )
- 2023-12-15 Linux系統——退出vi編輯模式
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支