新到貨2本75折
Python函數式編程(第2版)

Python函數式編程(第2版)

  • 定價:474
  • 優惠價:87412
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

Python具備函數式編程的許多核心特徵,因此可以借鑒其他函數式語言的設計模式和編程技術,編寫出簡潔優雅的代碼。本書首先介紹函數式編程的一般概念及特點,然後講解反覆運算器、生成器運算式、內置函數、常用高階函數、遞迴與歸約、實用模組和裝飾器的用法,以及避開Python嚴格求值順序的變通方法、Web服務設計方法和一些優化技巧。
 

作者介紹

史蒂文·洛特(Steven F. Lott)

軟體工程師、架構師、技術作家,20世紀70年代開始編程生涯,參與過100多個各種規模的專案研發。在使用Python解決業務問題方面,也有十餘年經驗。另著有《Python物件導向編程指南》等。
 

目錄

前言

第1章 函數式編程概述1
1.1編程範式1
1.2細分過程範式2
1.2.1使用函數式範式3
1.2.2使用混合範式5
1.2.3物件的創建過程6
1.2.4烏龜塔7
1.3函數式編程經典示例7
1.4EDA1
1.5小結10

第2章 函數式編程的特點11
2.1頭等函數11
2.1.1純函數12
2.1.2高階函數13
2.2不可變資料結構13
2.3嚴格求值與非嚴格求值14
2.4用遞迴代替迴圈語句16
2.5函數類型系統19
2.6回到最初19
2.7幾個高級概念20
2.8小結20

第3章 函數、反覆運算器和生成器22
3.1編寫純函數23
3.2函數作為頭等物件24
3.3使用字串25
3.4使用元組和命名元組26
3.4.1使用生成器運算式27
3.4.2生成器的局限30
3.4.3組合生成器運算式31
3.5使用生成器函數清洗原始資料31
3.6使用清單、字典和set33
3.6.1使用狀態映射36
3.6.2使用bisect模組創建映射37
3.6.3使用有狀態的set38
3.7小結39

第4章 使用集合40
4.1函數分類概覽40
4.2使用可反覆運算物件41
4.2.1解析XML文件42
4.2.2使用高級方法解析檔43
4.2.3組對序列元素45
4.2.4顯式使用iter()函數47
4.2.5擴展簡單迴圈48
4.2.6將生成器運算式應用於標量函數51
4.2.7用any()函數和all()函數進行歸約52
4.2.8使用len()和sum()54
4.2.9使用匯總和計數進行統計分析54
4.3使用zip()函數實現結構化和平鋪序列56
4.3.1將壓縮序列解壓58
4.3.2平鋪序列58
4.3.3結構化一維序列59
4.3.4結構化一維序列的另一種方式61
4.4使用reversed()函數改變順序62
4.5使用enumerate()函數包含下標值63
4.6小結63

第5章 高階函數64
5.1用max()函數和min()函數尋找極值65
5.2使用Python匿名函數67
5.3lambda與lambda運算元69
5.4使用map()將函數應用于集合69
5.5使用map()函數處理多個序列70
5.6使用filter()函數接收或捨棄資料72
5.7使用filter()函數檢測異常值73
5.8在iter()函數中使用哨兵值74
5.9使用sorted()函數將資料排序75
5.10編寫高階函數75
5.11編寫高階映射和過濾函數76
5.11.1拆包並映射資料77
5.11.2打包多項資料並映射79
5.11.3平鋪資料並映射80
5.11.4過濾並結構化資料81
5.12編寫生成器函數83
5.13使用可調用物件構建高階函數84
5.14設計模式回顧87
5.15小結88

第6章 遞迴與歸約89
6.1簡單數值遞迴89
6.1.1實現尾調用優化90
6.1.2保持遞迴形式91
6.1.3處理複雜的尾調用優化92
6.1.4使用遞迴處理集合93
6.1.5集合的尾調用優化94
6.1.6集合的歸約與折疊:從多個到一個95
6.2group-by歸約:從多到少96
6.2.1用Counter做映射97
6.2.2用排序構建映射98
6.2.3使用鍵值分組或者分區資料99
6.2.4編寫更通用的group-by歸約102
6.2.5編寫高階歸約103
6.2.6編寫檔解析器104
6.3小結109

第7章 元組處理技術110
7.1使用元組收集資料110
7.2使用命名元組收集資料112
7.3使用函數構造器創建命名元組115
7.4使用多種元組結構代替狀態類115
7.4.1賦等級值118
7.4.2用包裝代替狀態變化120
7.4.3以多次包裝代替狀態變化121
7.4.4計算斯皮爾曼等級順序相關度122
7.5多態與類型匹配123
7.6小結128

第8章 itertools模組129
8.1使用無限反覆運算器130
8.1.1用count()計數130
8.1.2使用實數參數計數131
8.1.3用cycle()迴圈反覆運算132
8.1.4用repeat()重複單個值134
8.2使用有限反覆運算器135
8.2.1用enumerate()添加序號135
8.2.2用accumulate()計算匯總值137
8.2.3用chain()組合多個反覆運算器138
8.2.4用groupby()切分反覆運算器139
8.2.5用zip_longest()和zip()合併反覆運算器140
8.2.6用compress()過濾140
8.2.7用islice()選取子集141
8.2.8用dropwhile()和takewhile()過濾狀態142
8.2.9基於filterfalse()和filter()的兩種過濾方法143
8.2.10將starmap()和map()應用於資料144
8.3使用tee()函數克隆反覆運算器145
8.4itertools模組代碼範例146
8.5小結147

第9章 高級itertools技術148
9.1笛卡兒積148
9.2對積進行歸約149
9.2.1計算距離150
9.2.2獲得所有圖元和顏色152
9.2.3性能分析153
9.2.4重構問題154
9.2.5合併兩種變換155
9.3排列集合元素156
9.4生成所有組合157
9.5代碼範例159
9.6小結160

第10章 functools模組161
10.1函數工具161
10.2使用lru_cache保存已有計算結果162
10.3使用total_ordering定義類163
10.4使用partial()函數應用部分參數166
10.5使用reduce()函數歸約資料集167
10.5.1合併map()和reduce()168
10.5.2使用reduce()函數和partial()函數170
10.5.3使用map()函數和reduce()函數清洗資料170
10.5.4使用groupby()函數和reduce()函數171
10.6小結173

第11章 裝飾器設計技術174
11.1作為高階函數的裝飾器174
11.2橫切關注點178
11.3複合設計178
11.4向裝飾器添加參數181
11.5實現更複雜的裝飾器183
11.6複雜設計注意事項184
11.7小結187

第12章 multiprocessing和threading模組188
12.1函數式編程和併發188
12.2併發的意義189
12.2.1邊界條件189
12.2.2進程或執行緒間共用資源190
12.2.3從何處受益191
12.3使用多進程池和任務191
12.3.1處理大量大型檔192
12.3.2解析日誌檔之收集行資料193
12.3.3解析日誌行為命名元組194
12.3.4解析Access物件的其他欄位196
12.3.5過濾訪問細節199
12.3.6分析訪問細節200
12.3.7完整的分析過程201
12.4使用多進程池進行併發處理202
12.4.1使用apply()發送單個請求204
12.4.2使用map_async()、starmap_async()和starmap_async()等函數204
12.4.3更複雜的多進程架構205
12.4.4使用concurrent.futures模組205
12.4.5使用concurrent.futures執行緒池206
12.4.6使用threading模組和queue模組206
12.4.7設計併發處理207
12.5小結208

第13章 條件運算式和operator模組209
13.1條件運算式求值210
13.1.1使用非嚴格字典規則211
13.1.2過濾True條件運算式212
13.1.3尋找匹配模式213
13.2使用operator模組代替匿名函數214
13.3運算子的星號映射215
13.4使用operator模組函數進行歸約217
13.5小結218

第14章 PyMonad庫219
14.1下載和安裝219
14.2函數式複合和柯裡化220
14.2.1使用柯裡化的高階函數221
14.2.2避易就難的柯裡化223
14.3函數式複合和PyMonad*運算子223
14.4函子和應用型函子224
14.5單子的bind()函數和>>運算子228
14.6模擬實現單子229
14.7單子的其他特性232
14.8小結233

第15章 Web服務的函數式設計方法234
15.1HTTP“請求 回應”模型234
15.1.1通過cookie注入狀態236
15.1.2函數式設計的伺服器考量236
15.1.3深入研究函數式視圖237
15.1.4嵌套服務237
15.2WSGI標準238
15.2.1在WSGI處理期間拋出異常240
15.2.2實用的WSGI應用程式242
15.3將Web服務定義為函數242
15.3.1創建WSGI應用程式243
15.3.2獲取原始資料245
15.3.3運用篩檢程式246
15.3.4序列化結果247
15.3.5序列化資料為JSON或CSV格式248
15.3.6序列化資料為XML格式249
15.3.7序列化數據為HTML250
15.4跟蹤使用情況251
15.5小結252

第16章 優化與改進254
16.1記憶化和緩存254
16.2指定記憶化256
16.3尾遞迴優化257
16.4優化存儲258
16.5優化精度259
16.6案例研究:卡方決策259
16.6.1使用Counter物件過濾和約分原始資料260
16.6.2讀取匯總資訊262
16.6.3Counter物件的求和計算263
16.6.4Counter物件的概率計算264
16.7計算期望值並顯示列聯表265
16.7.1計算卡方值267
16.7.2計算卡方閾值267
16.7.3計算不完全伽馬函數268
16.7.4計算完全伽馬函數270
16.7.5計算隨機分佈的概率271
16.8函數式編程設計模式273
16.9小結274

版權聲明
 

詳細資料

  • ISBN:9787115520173
  • 規格:平裝 / 275頁 / 16k / 19 x 26 x 1.38 cm / 普通級 / 單色印刷 / 1-1
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 現代出版,由此開始。商務印書館暢銷展,精選滿888現折88。
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 翦商作者新作79折
  • 針灸匠張寶旬
  • 浪漫小說精選3本72折