IN6. Dictionaries +defaultdict

更新於 發佈於 閱讀時間約 3 分鐘

題目連結

計算每個字詞出現的次數,區分大小寫(Python Dict 預設就是大小寫敏感)

這題開始有一點點難度了


輸入

We tried list and we tried dicts also we tried Zen

輸出

and 1
We 1
tried 3
dicts 1
list 1
we 2
also 1
Zen 1



首先將輸入字串,按照空白字元做切割,得到一個陣列

['We', 'tried', 'list', 'and', 'we', 'tried', 'dicts', 'also', 'we', 'tried', 'Zen']

用迴圈迭代跑過一輪

當字典裡有目前的字(key),數字(value)就+1。

若字典裡還沒有,則創造此字(key),數字(value)為1。


程式碼:

s = "We tried list and we tried dicts also we tried Zen"

counts = dict()
for word in s.split():
counts[word] = counts.get(word, 0) + 1

for key,value in counts.items():
print(key, value)

注意最後印出不能直接print(d)

而是要按照插入字典時的順序(所以題目的Hint中有這一段d.items()




或者使用 defaultdict

from collections import defaultdict

def count_word_occurrences(s):
counts = defaultdict(int) # 使用defaultdict來將value初始化為0

for word in s.split():
counts[word] += 1

for word, count in counts.items():
print(word, count)


s = "We tried list and we tried dicts also we tried Zen"
count_word_occurrences(s)


留言
avatar-img
留言分享你的想法!
avatar-img
生物資訊實驗室
0會員
16內容數
這裡存放著滿滿的大平台!Rosalind 生物資訊解題平台的學習過程! 📢 適合對象: ✅ 想學習生物資訊的程式新手 ✅ 對Python程式有基礎,想挑戰 Rosalind 題目的解題者 ✅ 對DNA、蛋白質、基因組數據分析有興趣的人
生物資訊實驗室的其他內容
2025/03/19
題目:https://rosalind.info/problems/ini5/ 讀入一個充滿文字的檔案 按照1-based 索引取出偶數行(第2、4、6... 行) with open("IN5.txt", "r", encoding="utf-8") as file: lines
2025/03/19
題目:https://rosalind.info/problems/ini5/ 讀入一個充滿文字的檔案 按照1-based 索引取出偶數行(第2、4、6... 行) with open("IN5.txt", "r", encoding="utf-8") as file: lines
2025/03/18
計算所有在a~b之間的奇數數字 python沒有內建 isOdd()函式,所以只能寫ifㄍ判斷奇數、偶數 a, b = 100, 200 s = 0 for i in range(a, b+1): if i % 2 == 1: s += i print(s)
2025/03/18
計算所有在a~b之間的奇數數字 python沒有內建 isOdd()函式,所以只能寫ifㄍ判斷奇數、偶數 a, b = 100, 200 s = 0 for i in range(a, b+1): if i % 2 == 1: s += i print(s)
2025/03/18
題目:https://rosalind.info/problems/ini3/ 給一長字串,然後a, b, c, d 4個數字 切出字串[a~b]、字串[c~d]的位置,連接後印出來 (須包含字串[b]、字串[d]的位置) s = "HumptyDumptysatonawallHum
2025/03/18
題目:https://rosalind.info/problems/ini3/ 給一長字串,然後a, b, c, d 4個數字 切出字串[a~b]、字串[c~d]的位置,連接後印出來 (須包含字串[b]、字串[d]的位置) s = "HumptyDumptysatonawallHum
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
給定一個字串陣列,請把它們所共有的字元伴隨著出現次數輸出。這篇文章介紹如何使用字典統計出現次數,和字典取交集的方法來解決此問題。並提供了複雜度分析和關鍵知識點。
Thumbnail
給定一個字串陣列,請把它們所共有的字元伴隨著出現次數輸出。這篇文章介紹如何使用字典統計出現次數,和字典取交集的方法來解決此問題。並提供了複雜度分析和關鍵知識點。
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
探討如何使用DP動態規劃的方法來進行單字串接,包含了DP遞迴關係式、狀態定義、優化技巧和程式碼示例。同時分析了時間複雜度、空間複雜度和關鍵知識點。這是LeetCode的一個應用題,類似於Word Break I的延伸。
Thumbnail
探討如何使用DP動態規劃的方法來進行單字串接,包含了DP遞迴關係式、狀態定義、優化技巧和程式碼示例。同時分析了時間複雜度、空間複雜度和關鍵知識點。這是LeetCode的一個應用題,類似於Word Break I的延伸。
Thumbnail
題目會給定一個陣列nums和一個目標值goal。計算子陣列總和=goal的數目有多少。演算法包含前綴和和字典的技巧,時間複雜度為O(n),空間複雜度為O(n)。
Thumbnail
題目會給定一個陣列nums和一個目標值goal。計算子陣列總和=goal的數目有多少。演算法包含前綴和和字典的技巧,時間複雜度為O(n),空間複雜度為O(n)。
Thumbnail
題目敘述 題目會給定我們兩個字串。 第一個是指定順序的字串order。 第二個是輸入字串s。 要求我們依據order給定的順序,重新排列s。 如果出現order中沒有出現的字母,任意位置皆可。 合法答案可能不只一組,輸出其中一種即可。 題目的原文敘述 測試範例 Example
Thumbnail
題目敘述 題目會給定我們兩個字串。 第一個是指定順序的字串order。 第二個是輸入字串s。 要求我們依據order給定的順序,重新排列s。 如果出現order中沒有出現的字母,任意位置皆可。 合法答案可能不只一組,輸出其中一種即可。 題目的原文敘述 測試範例 Example
Thumbnail
題目敘述 題目會給定一個輸入字串s和一套編碼規則,要求我們針對字串s進行解碼,並且以字串的形式返回答案。 編碼規則: 數字[字串] -> []內的字串以對應倍數做展開,而且允許巢狀編碼。 例如: 3[a] 解碼完就是 aaa 2[bc] 解碼完就是 bcbc 2[a2[b]] = 2
Thumbnail
題目敘述 題目會給定一個輸入字串s和一套編碼規則,要求我們針對字串s進行解碼,並且以字串的形式返回答案。 編碼規則: 數字[字串] -> []內的字串以對應倍數做展開,而且允許巢狀編碼。 例如: 3[a] 解碼完就是 aaa 2[bc] 解碼完就是 bcbc 2[a2[b]] = 2
Thumbnail
題目敘述 題目會給定兩個輸入。 第一個輸入是關鍵字清單products,第二個是使用者輸入的字串searchWord。 要求我們實現關鍵字搜尋建議系統,使用者每輸入一個字元就推薦一次。 推薦時,優先返回字典序(Lecial order)最接近的關鍵字,最多不要超過三個關鍵字。 題目的原文
Thumbnail
題目敘述 題目會給定兩個輸入。 第一個輸入是關鍵字清單products,第二個是使用者輸入的字串searchWord。 要求我們實現關鍵字搜尋建議系統,使用者每輸入一個字元就推薦一次。 推薦時,優先返回字典序(Lecial order)最接近的關鍵字,最多不要超過三個關鍵字。 題目的原文
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News