10 個有趣的 Python 技巧
隨著 Python 流行度的不斷提高,越來越多的功能變得可用。使用這些功能可以使程式碼更簡潔,行數更少。在本文中,我們將介紹 10 個此類 Python 技巧,這些技巧非常常用且非常有用。
反轉列表
我們可以簡單地使用 reverse() 函式來反轉給定的列表。它處理列表中存在的數字和字串資料型別。
示例
List = ["Shriya", "Lavina","Sampreeti" ] List.reverse() print(List)
輸出
執行以上程式碼將得到以下結果:
['Sampreeti', 'Lavina', 'Shriya']
按任意順序列印列表元素
如果您需要按不同順序列印列表的值,您可以將列表分配給一系列變數,並以程式設計方式決定要列印列表的順序。
示例
List = [1,2,3] w, v, t = List print(v, w, t ) print(t, v, w )
輸出
執行以上程式碼將得到以下結果:
(2, 1, 3) (3, 2, 1)
在函式內部使用生成器
我們可以在函式內部直接使用生成器來編寫更短、更簡潔的程式碼。在下面的示例中,我們使用生成器作為 sum 函式的引數來查詢總和。
示例
sum(i for i in range(10) )
輸出
執行以上程式碼將得到以下結果:
45
使用 zip() 函式
當我們需要連線多個迭代器物件(如列表)以獲得單個列表時,可以使用 zip 函式。結果顯示每個專案與其來自其他列表的相應專案分組。
示例
Year = (1999, 2003, 2011, 2017) Month = ("Mar", "Jun", "Jan", "Dec") Day = (11,21,13,5) print zip(Year,Month,Day)
輸出
執行以上程式碼將得到以下結果:
[(1999, 'Mar', 11), (2003, 'Jun', 21), (2011, 'Jan', 13), (2017, 'Dec', 5)]
使用一行程式碼交換兩個數字
交換數字通常需要將值儲存在臨時變數中。但是,使用此 Python 技巧,我們可以使用一行程式碼完成此操作,而無需使用任何臨時變數。
示例
x,y = 11, 34 print x print y x,y = y,x print x print y
輸出
執行以上程式碼將得到以下結果:
11 34 34 11
轉置矩陣
轉置矩陣涉及將列轉換為行。在 Python 中,我們可以透過設計一些迴圈結構來遍歷矩陣中的元素並更改其位置來實現它,或者我們可以使用以下指令碼,其中包含 zip 函式以及 * 運算子來解壓縮列表,該列表成為給定矩陣的轉置。
示例
x = [[31,17], [40 ,51], [13 ,12]] print (zip(*x))
輸出
執行以上程式碼將得到以下結果:
[(31, 40, 13), (17, 51, 12)]
列印字串 N 次
在任何程式語言中,列印字串多次的常用方法是設計一個迴圈。但是 Python 有一個簡單的技巧,它涉及在 print 函式內部使用字串和數字。
示例
str ="Point"; print(str * 3);
輸出
執行以上程式碼將得到以下結果:
PointPointPoint
使用列表切片反轉列表元素
列表切片是 Python 中一項非常強大的技術,它也可用於反轉列表中元素的順序。
示例
#Reversing Strings list1 = ["a","b","c","d"] print list1[::-1] # Reversing Numbers list2 = [1,3,6,4,2] print list2[::-1]
輸出
執行以上程式碼將得到以下結果:
['d', 'c', 'b', 'a'] [2, 4, 6, 3, 1]
查詢數字的因數
當我們需要數字的因數時,用於某些計算或分析,我們可以設計一個小的迴圈,它將檢查該數字與迭代索引的可除性。
示例
f = 32 print "The factors of",x,"are:" for i in range(1, f + 1): if f % i == 0: print(i)
輸出
執行以上程式碼將得到以下結果:
The factors of 32 are: 1 2 4 8 16 32
檢查記憶體使用情況
我們可以使用 getsizeof() 函式檢查我們宣告的每個變數消耗的記憶體量。如下所示,不同的字串長度將消耗不同的記憶體量。
示例
import sys a, b, c,d = "abcde" ,"xy", 2, 15.06 print(sys.getsizeof(a)) print(sys.getsizeof(b)) print(sys.getsizeof(c)) print(sys.getsizeof(d))
輸出
執行以上程式碼將得到以下結果:
38 35 24 24