.統計英文兒歌《twinkle twinkle little star》中,使用到的單詞及其出現次數。要求去除單詞大小寫的影響,不統計標點符號的個數。並按降序輸出

13.統計英文兒歌《twinkle twinkle little star》中,使用到的單詞及其出現次數。要求去除單詞大小寫的影響,不統計標點符號的個數。並按降序輸出。
Twinkle, twinkle, little star,
How I wonder what you are!
Up above the world so high,
Like a diamond in the sky.
Twinkle, twinkle, little star,
How I wonder what you are!
When the blazing sun is gone,
When he nothing shines upon,
Then you show your little light,
Twinkle, twinkle, all the night.
Twinkle, twinkle, little star,
How I wonder what you are!
我們可以看到這一題的要求比較多,我們一一分析,首先使用到的單詞及其出現的次數是可以通過一系列的表點符號以及空格來進行,利用列表推導式進行循環計數處理輸出。其次去除單詞大小寫的影響,我們可以利用函數lower()全部變成小寫。不統計標點符號的個數,那麼我們需要去除標點符號的影響,我們可以想到replace()。並按降序輸出,按照統計的數值大小順序降序輸出
分析之後調整做題順序,第一步將所有單詞全部變成小寫;第二步去除標點符號影響;第三步計數,第四步降序輸出
這裏用到了冒泡排序發


song = """Twinkle, twinkle, little star,
How I wonder what you are!
Up above the world so high,
Like a diamond in the sky.
Twinkle, twinkle, little star,
How I wonder what you are!
When the blazing sun is gone,
When he nothing shines upon,
Then you show your little light,
Twinkle, twinkle, all the night.
Twinkle, twinkle, little star,
How I wonder what you are!
"""
lines = song.lower().strip()\
    .replace(",","").replace(".",'').replace("!",'').replace("?",'').split("\n")
words = []
word_counts={}
for line in lines:
    words += line.split(" ")
for word in words:
    if word in word_counts:
        word_counts[word] = word_counts[word] + 1
    else:
        word_counts[word] = 1
word_key_count = []
for key in word_counts:
    key_count = [key, word_counts[key]]
    word_key_count.append(key_count)
#冒泡排序
for index in range(1,len(word_key_count)):
    for sub_index in range(index,0,-1):
        if word_key_count[sub_index][1] > word_key_count[sub_index - 1][1]:
            temp = word_key_count[sub_index - 1]
            word_key_count[sub_index - 1] = word_key_count[sub_index]
            word_key_count[sub_index] = temp
for index in range(len(word_key_count)):
    print(word_key_count[index][0],word_key_count[index][1])

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章