分享Python中四個不常見的小技巧
1. 引言
在編程界,每個人都希望自己可以寫出世界上最好的代碼,其實最好的代碼往往需要具備最好的代碼質量。勤能補拙,善于總結往往可以快速提升大家的編程技巧。 本文重點對日常中不常使用的四個Python技巧進行簡明闡述,希望可以提升大家編碼時的工作效率。 閑話少說,我們直接開始吧!
2. 獲取 n 個最大數(shù)字
我們知道,要獲得列表中的最大數(shù)字,我們往往使用??max?
?函數(shù),
如下:
max([15, 21, 30, 20]) # ouput: 30
但是如果我們將其進行擴展,獲取n個最大數(shù)字的列表呢?學過數(shù)據(jù)結構的同學,也許能想到來構建大頂堆數(shù)據(jù)結構,嗯嗯,在Python中有一個名為??heapq?
?的模塊,可以非常方便的來實現(xiàn)上述功能。
如下所示:
import heapq heap = [10, 5, 18, 1, 100] # heapq.nlargest(n, iterable) n_largest_numbers = heapq.nlargest(3, heap) # show result print(n_largest_numbers)
結果輸出如下:
[100, 18, 10]
3. 獲取 n 個最小數(shù)字
正如我們對??max?
?函數(shù)了解的一樣,我們可以知道??min?
?函數(shù)的作用:
min([15, 21, 30, 20]) # ouput: 15
大家知道數(shù)據(jù)結構中通過構建大頂堆可以方便的求出n個最大數(shù)字,所以我們也可以通過小頂堆來獲取n個最小數(shù)字,舉例如下:
import heapq heap = [10, 5, 18, 1, 100, 8, 7] # heapq.nsmallest(n, iterable) n_smallest_numbers = heapq.nsmallest(4, heap) # show result print(n_smallest_numbers)
輸出如下:
[1, 5, 7, 8]
4. 刪除字符串的特定部分
假設我們有字符串??+-+-+Python?
?,如果此時我們只需要獲取上述字符串中的部分即??Python?
?,此時我們可以使用python字符串模塊中的??removeprefix?
?函數(shù),
示例如下:
myString = "+-+-+Python" new_string = myString.removeprefix("+-+-+") # show result print(new_string)
輸出如下:
Python
5. 從列表中刪除重復元素
為了實現(xiàn)從列表中刪除重復元素,也許我們知道可以通過集合進行轉換,如下:
li = [10, 15, 10, 10, 5, 5] without_duplicates = list(set(li)) print(without_duplicates)
輸出如下:
[10, 5, 15]
但是上述實現(xiàn)并不是非常專業(yè)的實現(xiàn),因為輸出結果沒有按原先次序輸出,所以讓我向大家展示第二種方式:
li = [10, 15, 10, 10, 5, 5] without_duplicates = dict.fromkeys(li) print(list(without_duplicates))
輸出如下:
[10, 15, 5]
6. 總結
python中的一些技巧可以幫助我們編寫更高效的代碼。本文中我們介紹了四個小技巧可以幫助我們做一些了不起的事情。最后希望大家可以喜歡我寫的簡單的小文章,并確保可以學到新的東西。
到此這篇關于分享Python中四個不常見的小技巧的文章就介紹到這了,更多相關Python不常見技巧內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
win10下tensorflow和matplotlib安裝教程
這篇文章主要為大家詳細介紹了win10下tensorflow和matplotlib安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09Python實現(xiàn)的插入排序,冒泡排序,快速排序,選擇排序算法示例
這篇文章主要介紹了Python實現(xiàn)的插入排序,冒泡排序,快速排序,選擇排序算法,結合實例形式總結分析了Python插入排序,冒泡排序,快速排序,選擇排序等算法的實現(xiàn)與使用技巧,需要的朋友可以參考下2019-05-05python 字符串轉列表 list 出現(xiàn)\ufeff的解決方法
下面小編就為大家?guī)硪黄猵ython 字符串轉列表 list 出現(xiàn)\ufeff的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06Python?ArcPy實現(xiàn)批量計算多時相遙感影像的各項元平均值
這篇文章主要為大家詳細介紹了如何基于Python中ArcPy模塊,實現(xiàn)對大量長時間序列柵格遙感影像文件的每一個像元進行多時序平均值的求取,感興趣的可以了解一下2023-04-04Python3實現(xiàn)發(fā)送郵件和發(fā)送短信驗證碼功能
這篇文章主要介紹了Python3實現(xiàn)發(fā)送郵件和發(fā)送短信驗證碼功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01