用 Pipe 搞定單詞統計的面試題

2021-08-31 08:35:00 字數 572 閱讀 9865

賴勇浩(

今天早上,@smallfishxy 公開了一條面試題:

讀取檔案,統計檔案中每個單詞出現的次數,然後按照次數高低排序。

本來蠻平淡無奇的一題,但一跟前天介紹的 pipe 結合起來,就有意思了,這類資料流的處理,相當適合用 pipe 來處理,花了點時間,寫**如下:

from __future__ import print_function from re import split from pipe import * with open('test_descriptor.py') as f: print(f.read() | pipe(lambda x:split('/w+', x)) | pipe(lambda x:(i for i in x if i.strip())) | groupby(lambda x:x) | select(lambda x:(x[0], (x[1] | count))) | sort(key=lambda x:x[1], reverse=true) )

輸出:在使用 pipe 解題的過程中,發現乙個問題:

當出錯的時候,想找到錯誤原因太難了!

用 Pipe 搞定單詞統計的面試題

賴勇浩 今天早上,smallfishxy 公開了一條面試題 讀取檔案,統計檔案中每個單詞出現的次數,然後按照次數高低排序。本來蠻平淡無奇的一題,但一跟前天介紹的 pipe 結合起來,就有意思了,這類資料流的處理,相當適合用 pipe 來處理,花了點時間,寫 如下 from future import...

微軟面試題 之 單詞的劃分

有乙個很長的由小寫字母組成字串。為了便於對這個字串進行分析,需要將它劃分成若干個部分,每個部分稱為乙個單詞。出於減少分析量的目的,我們希望劃分出的單詞數越少越好。你就是來完成這一劃分工作的。第一行為一整數t,表示有t組測試資料。每組測試資料第一行為一字串。長度小於256 第二行為一整數n。1 n 1...

面試題 談談MySQL的基數統計

推薦閱讀方式 使用推薦閱讀,有更好的閱讀體驗 一 基數是啥?cardinality指的就是mysql表中某一列的不同值的數量。如果這一類是唯一索引,那基數 行數。如果這一列是 列舉型別只有男女,那它是基數就是2 cardinality越高,列就越有成為索引的價值。mysql執行計畫也會基於cardi...