必看的的30個Python語言的特點技巧(3)
從我開始學習Python時我就決定要維護一個經常使用的「訣竅」清單。不論何時當我看到一段讓我覺得「酷,這樣也行!」的程式碼(在一個例子中、在StackOverflow、在開源軟體中,等等),我會嘗試它直到理解它,然後把它加到列表中。這篇文章是清理過清單的一部分。如果你是個有經驗的Python程式設計師,儘管你可能已經知道一些,但你仍能發現一些你不知道的。如果你是一個正在學習Python的C、C++或Java程式設計師,或是剛開始學習編程,那麼你會像我一樣發現它們中的許多非常有用。
每個訣竅或語言特性只能透過實例來驗證,無需過多解釋。雖然我已盡力使例子清晰,但它們中的一些仍會看起來有些複雜,這取決於你的熟悉程度。所以如果看過例子後還不清楚的話,標題能夠提供足夠的資訊讓你透過Google獲取詳細的內容。
清單依難度排序,常用的語言特徵和技巧放在前面。
1.30 最大最小元素(heapq.nlargest和heapq.nsmallest)
>>> a = [random.randint(0, 100) for in xrange(100)]
>>> heapq.nsmallest(5, a)
#[3, 3, 5, 6, 8]
>>> heapq.nlargest(5, a)
[100, 100, 99, 98, 98]
1.31笛卡兒乘積(itertools.product)
>>> for p in itertools.product([1, 2, 3], [4, 5]):
#(1 , 4)
(1, 5)
(2, 4)
(2, 5)
#(3, 4)
(3, 5)
>>> for p in itertools.product([0, 1], repeat=4):
... # print ''.join(str(x) for x in p)
...
0000
0001
0010
0011
0100
0101
0110
0111
#1000
#1001
#1010
1011
1100
1101
1110
1111
#1.32 組合的組合和組合的組合和組合的組合和組合的組合。置換(itertools.combinations 和itertools.combinations_with_replacement)
>>> for c in itertools.combinations([1, 2, 3, 4, 5], 3): 1
o ... print ''.join(str(x) for x in c)
#...
123
##124 #125 134 135 145 234 235 #245 345#245
345
>>> for c in itertools.combinations_with_replacement([1, 2, 3], 2):
... print ''.join(str(x) for x in c )
...
11
#12
13
22
23
33
1.33 排序(itertools.permutations)
>>> for p in itertools.permutations([1, 2, 3, 4]):
#... print ''.join(str(x) for x in p)
...
1234
1243
#1324
1342
1423
1432
2134
2143
#2314
#2341
#2314
#2341
#2413
#2431
3124
3142
3214
#3241
#3412
3421 4123 4132 4213 4231 4312 4321 1.34 連結的迭代(itertools.chain)######>>> a = [1, 2, 3, 4] #######>>> for p in itertools .chain(itertools.combinations(a, 2), itertools.combinations(a, 3)): ######... print p ######... #######(1 , 2) ######(1, 3) ######(1, 4) ######(2, 3) #######(2, 4) ### ###(3, 4) ######(1, 2, 3) ######(1, 2, 4) ######(1, 3, 4) ### ###(2, 3, 4) ######>>> for subset in itertools.chain.from_iterable(itertools.combinations(a, n) for n in range(len(a) + 1 )) ######... print subset #######... ######() #####(1,) #######(2,) ######(3,) ######(4,) #######(1, 2) ######(1, 3) ######(1 , 4) ######(2, 3) ######(2, 4) ######(3, 4) #######(1, 2, 3) # #####(1, 2, 4) ######(1, 3, 4) ######(2, 3, 4) #######(1, 2, 3 , 4) ######1.35 依給定值分組行(itertools.groupby)######>>> from operator import itemgetter ######>>> import itemgetter ######>>> import itertools ###>>> with open('contactlenses.csv', 'r') as infile:
... data = [line.strip().split(',') for line infile]
# #...
>>>資料 = 資料[1:]
>>> def print_data(rows):
... print '\n'.join('\t'.join('{:
...
>>> print_data(data)
年輕 注意力 no 沒有
年輕 近視 否
年輕 近視 是 近視 是 正常
##年輕 遠視 沒有 遠視 沒有 正常 是 選擇 無 正常 硬 pre -老花眼 沒有 減少 沒有 前老花眼 沒有 正常 軟 老花前 近視 是 減少 無 老花前 近視 是 正常 硬 減少 無 前老花眼 是 減 正常 且沒有老花眼 沒有 減少 無
老花眼 沒有 正常 無
老花眼 近視 是 減少 無
老花 近視 是 正常 硬
老花 遠視 否減少 無
遠視 遠視 無
老花眼 遠視 是 >> ;> data.sort(key=itemgetter(-1))
>>>> for value, group in itertools.groupby(data, lambda r: r[-1]):
... print '-----------'
# ... print '組:' + 值
##... print_data(group) ... ----------- 組:硬 近視 是 遠視 是 正常 正常 老花眼近視 硬 #----------- 組:無 年輕 近視 無 年輕近視 減少 時使用中反#121遠視 無 減 是 減少 「「反」中」(老花前 否 減中 是 選擇 無 減少 無
老花前 遠視眼睛 無
前老花眼 遠視眼 是 正常 無
老花眼 近視 否 減少 無
老花眼 近視 無 正常 無
老花眼 近視 是 減少 無
老花眼 遠視眼 否 時下眼睛 是 減少 正常 無
#----------- #組中:軟 近視 否 遠視沒有 正常 正常 軟
前老花眼遠目 否 正常軟
以上是必看的的30個Python語言的特點技巧(3)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
