亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

尋找與此 javascript 代碼等效的 python

尋找與此 javascript 代碼等效的 python

開心每一天1111 2022-01-07 09:56:15
我正在為我的工作學習 python,以便能夠操作統計數據。我已經了解 C# 和 javascript,并且可以使用這些語言解決這個問題,但是我很難將解決方案翻譯成 python。問題 計算 .txt 文件中所有唯一的四個字母單詞。任何帶有撇號的單詞都應該被忽略。忽略單詞的大小寫(即Tool和tool應該只算一個單詞)。打印出(以便用戶可以看到)唯一的四個字母單詞的數量。根據單詞的最后兩個字母(單詞結尾)劃分四個字母的單詞。數一數這些詞尾你有多少個單詞。打印出一個詞尾列表和你為每個詞尾找到的詞數。我在下面的 Javascript 中解決了這個問題:var listOfWords = ['card','alma','soon','bard','moon','dare'];var groupings = {};for(var i = 0; i < listOfWords.length; i++);{    var ending = listOfWords[i].substring(2,4)    if(groupings[ending] === undefined)    {        groupings[ending] = {}        groupings[ending].words = []        groupings[ending].count = 0    }    groupings[ending].words.push(listOfWords[i])    groupings[ending].count++};console.debug(groupings);這是我到目前為止在 python 中的內容:import retext = open("words.txt")regex = re.compile(r'\b\w{4}\b')allFours = []groupings = []for line in text:    four_letter_words = regex.findall(line)    for word in four_letter_words:                allFours.append(word)mylist = list(dict.fromkeys(allFours))uniqueWordCount = len(mylist)print(uniqueWordCount)for i = 0; i < mylist.length; i++:    var ending = mylist[i]我希望我已經清楚地解釋了所有問題。非常感謝所有幫助,謝謝。
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

問題 計算 .txt 文件中所有唯一的四個字母單詞。任何帶有撇號的單詞都應該被忽略。忽略單詞的大小寫(即Tool和tool應該只算一個單詞)。打印出(以便用戶可以看到)唯一的四個字母單詞的數量。

根據單詞的最后兩個字母(單詞結尾)劃分四個字母的單詞。數一數這些詞尾你有多少個單詞。

  • 獨特 -> 設置

  • 4 個字母 -> 最好只檢查長度而不是使用正則表達式,正則表達式很慢

  • 忽略帶撇號的單詞 -> "'" not in word

  • 忽略大小寫 -> 將所有轉換為更低,簡單

  • 根據最后 2 個字母劃分集合 -> 制作一個 dict

result = set()

with open("words.txt") as fd:

    for line in fd:

        matching_words = {word for word in line.lower().split() if len(word)==4 and "'" not in word}

        result.update(matching_words)

print(result)

print(len(result))

line.lower()使整行小寫字母,然后.split()使用默認參數將其拆分為空格。


result_dict = {}

for word in result:

    # better to use default dict here but you'll need to read docs for that

    result_dict[word[2:]] = result_dict.get(word[2:], []) + [word]

print(result_dict)

print({key: len(value) for key, value in result_dict.items()})


查看完整回答
反對 回復 2022-01-07
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號