這是我遇到的乙個python面試題,因為正規表示式用的不熟悉,所以直接沒參加。最後心裡過意不去,就試著寫了寫:
問題如下:
請完成乙個程式,並能按步驟實現以下功能:
2. 統計mt.html中標籤內下所有單詞以及數目並儲存到mt_word.txt中。
mt_word.txt有如下幾點要求:
a) 每個單詞一行。單詞在前,單詞出現的次數在後,中間用tab(\t)進行分隔。
b) 單詞要按照單詞數目從多到少的順序進行排列。比如說單詞a出現了100次,單詞b出現了10次,則單詞a要在單詞b的前面。
最後實現**如下:
from bs4 import beautifulsoup
import re
soup = beautifulsoup(open('mt.html','r', encoding='utf-8'),'html.parser')
str1=""
for k in soup.find_all('p'):
str1 += re.sub(r'(<.*?\w>|\(|\)|\"|\,|\.|\;|\/|\d|\$|\%|\'|\<|\-|\>|\–)', '', str(k))
maps ={}
for v in re.sub(r"\s+","|",str1).split("|"):
if v in maps:
maps[v] += 1
else:
maps[v] = 1
lis = sorted(maps.items(), key = lambda asd:asd[1],reverse=true)
print(lis)
for i in lis:
with open("mt_words.txt", "a+", -1, "utf-8") as f:
f.write(i[0] + '\t' + str(i[1]) + "\n")
寫的不是很好,有改進的空間,僅供參考
乙個面試題
題目是 假設乙個 搜尋引擎收錄了2 24首歌曲,並記錄了可收聽這些歌曲的2 30條url,但每首歌的url不超過2 10個。系統會定期檢查這些url,如果乙個url不可用則不出現在搜尋結果中。現在歌曲名和url分別通過整型的song id和url id唯一確定。對該系統有如下需求 1 通過song ...
乙個面試題
在不超過最右邊的數量的情況下任意組合,要求加起來不超過20280這個數字,但達成最接近的情況,現有一種方法為 1290 4 2990 5,差170,有沒有更接近20280的答案 資料如下 4900 13790 22990 5 意思是不能超過5次,但可以使用1次,2次,3次,4次,5次。2390 31...
乙個面試題
res fromkeys name password age print res print res print id res name id res password res name 666 print res 輸出 57496360 57496360 fromkeys 建立字典時,字典中所有的...