12個Python小技巧,讓你的程式碼更加簡潔、優雅!
你瞭解最新的Python功能和技術嗎?這12個小技巧能幫助你提高程式碼質量。
1. F-Strings
F-Strings提供了一種簡便的方法,可以將Python表示式嵌入字串文字中進行格式化。首先,定義print語句中的會用到的兩個變數:name和age。
name = “Pavel”
age = 23
為了不處理字串連線或在print語句中使用逗號,可以使用Python3。6升級版字串格式化法“f-Strings”。只需在大括號內有變數或表示式的字串前面放一個小寫或大寫字母“f”即可。
很多小夥伴在學習python的時候總會遇到一些問題和瓶頸,沒有方向感,不知道該從哪裡入手去提升,對此我整理了一些資料,希望能夠去幫助到小夥伴們,可以關注小編,並在後臺私信小編:“資料”即可領取。
F-Strings是一種很棒的格式化字串新方法,此法得出的結果可讀性更強、速度更快、格式更簡潔、更不容易出錯。
2.查詢任何物件的大小
預設的sys模組包含一個getsizeof函式,該函式接受一個物件並以位元組為單位返回其大小。該物件可以是任何型別。例如:
僅計算直接歸因於該物件的記憶體消耗,而不計算它所指物件的記憶體消耗。再來看另一個例子:
3.原地交換變數
在許多其他程式語言中,只有透過定義一個額外的temp(臨時)變數才能交換兩個或以上變數的值。假設想交換x和y:
temp = x
x = y
y = temp
Python用一種簡單的單行結構來交換變數,類似於將值賦給一行中多個變數的概念。以下程式碼與上面程式碼相同,但沒有使用任何臨時變數:
4.比較運算子的連結
通常要檢查兩個以上的條件時,必須使用邏輯運算子,例如and/or:
if a < b and b < c:
在Python中,有一種更好的方法可以使用比較運算子連結來編寫它。運算子的鏈可寫為:
if a < b < c:
例如:
5. 列表理解
列表理解是更常用、更巧妙的列表製作方式。不需要建立空列表並將每個元素新增到末尾,只需按照以下格式同時定義列表及其內容:
new_list = [expression for item in iterable (if conditional)]
例如:
另一個例子(有條件):
6.字串乘法
在Python中,不僅可以乘以數字,還可以乘以字串。例如:
7.在一行中分配多個變數
可用逗號分隔變數和值,從而把多個值分配給各個變數:
這在對序列(例如列表或元組)解構/解包時也同樣適用,並且是將序列的元素更巧妙地分配給各個變數,因為不需要使用迴圈或單獨索引序列中的每個元素。
8.引數解包
當需要對列表或元組中的引數進行解包以進行需要單獨位置引數的函式呼叫時,Splat或Scatter運算子* 有時能發揮作用。
例如,內建的range()函式需要單獨的開始和停止引數。編寫函式呼叫時,可以使用* 運算子將引數從列表或元組中解包:
讓我們定義一個簡單的列表:x = [1,2,3,4,5]。
解包運算子的一個常見示例是使用 print:
print(*x) // Result: 1 2 3 4 5
這只是打印出列表中的每個元素,這些元素以空格分隔,因為解包運算子接受了列表中的所有元素,並將它們作為引數傳遞,因此上面程式碼轉換成print(1,2,3,4,5)。
這個Python技巧在函式中經常使用,以將方法呼叫接收到的所有引數‘打包’到單個變數中。例如:
上面的函式func可以接受無限數量的引數(args[0]和args[1]將分別提供第一個和第二個引數)。
以類似的方式,字典可以使用**運算子傳遞關鍵字引數。來定義一個名為 person的Python字典:
person = {“name”: “Paul”, “age”:23, “location”: “London”}
你可以使用**運算子將字典傳遞給函式。傳入字典將把keys分解為函式關鍵字引數,然後將該值作為為該引數傳遞的實際值。例如:
9.建立Enum
Enum是Python中用於建立列舉的類,列舉是附加到唯一常量值的一組符號名。
為了建立Enum,必須建立一個類,該類是所需Enum的名稱。剩下要做的就是列出變數並將其設定為所需的值:
以訪問列舉成員Paul為例,只需執行Person。Paul,它將返回0。在Python中,可以透過以下方式簡化上述示例:將變數彼此相鄰列出並將它們設定為等於range函式:
10.Enumerate
通常在遍歷列表時,不僅要訪問列表中所有的索引,還要訪問實際元素。
來定義一個
字元列表
:
x = [ a , b , c ]
與其以標準方式遍歷它,不如訪問元素和索引:
使用Enumerate:
Enumerate是Python的內建函式,它使我們可以迴圈一個可迭代物件而且有一個自動計數器。實際上它將列表中的每個元素與相應的索引配對,大多數新手,甚至一些高階程式設計師都不瞭解它。
可將變數 i和v更改為喜歡的變數名稱。例如,for index, count in enumerate(x)。。
11.Help函式
Python help函式用於查詢模組、函式、類、關鍵字等的幫助文件。只需在help函式中傳遞一個物件即可檢索該物件的幫助文件:
12.Dir函式
dir()是Python3中一個強大的內建函式,它可返回任何物件(即函式、模組、字串、列表、字典等)的屬性和方法的列表。在幾乎沒有關於模組的資訊時,這非常有用,有助於更快地學習新模組。例如:
dir()通常用於除錯目的。dir()能夠列出傳遞引數的所有屬性,在分別處理許多類和函式時非常有用。
相關文章
- 2021-06-06《圖解Python》,我找到了快速學習Python的書
- 2021-05-27程式碼乾貨——C#Linq表示式的高階寫法
- 2021-05-27python輕鬆入門-16面向物件初級(上)
- 2021-05-14好用到哭9個實戰案例分析教你玩轉Python
- 2021-03-31Excel函式: AND函式與乘法運算的關係, 學邏輯必須瞭解的關係