Python編程題18--統計字母出現次數並排序


題目

給定一個列表,列表元素僅包含字母,請統計每個字母的出現次數,並按出現次數排序,要求最終返回結果為字典形式。

例如:

給定一個列表:['a', 'a', 'c', 'b', 'd', 'c', 'c', 'c', 'd', 'd']
返回結果:{"c": 4, "d": 3, "a": 2, "b": 1}

實現思路1

  • 利用 Python 里的計數器 Counter ,其可用於追蹤值的出現次數,並返回一個 Counter 類對象,是字典 dict 的子類
  • 利用 Python 里的內置函數 sorted() 並結合匿名函數 lambda 進行排序,設置 reverse=True 表示降序
  • 把結果轉換為字典 dict 形式返回

注意:sorted() 返回的結果是一個新的列表list ,這里需要轉換為字典格式再返回

代碼實現

# coding=utf-8
#__author:chenxiaomeng
#date:2021/11/17

#題目:給定一個列表,列表元素僅包含字母,請統計每個字母的出現次數,並按出現次數排序,要求最終返回結果為字典形式。
#給定一個列表:['a', 'a', 'c', 'b', 'd', 'c', 'c', 'c', 'd', 'd']
#返回結果:{"c": 4, "d": 3, "a": 2, "b": 1}


from collections import Counter
def CountNum(str_list):
    temp=Counter(str_list)
    res_list=sorted(temp.items(),key=lambda x:x[1],reverse=True)
    res_dict=dict(res_list)

    print(res_dict)

if __name__ == '__main__':
    str_list = ["a", "a", "c", "b", "d", "c", "c", "c", "d", "d"]
    CountNum(str_list)

 

 

 

實現思路2

  • #實現方法2:首先將list存為set集合,然后計算set中各元素key的出現次數value保存到字典中,最后根據字典dict的value進行排序。 #set() 函數創建一個無序不重復元素集,可進行關系測試,刪除重復數據,還可以計算交集、差集、並集等。

代碼實現

#實現方法2:首先將list存為set集合,然后計算set中各元素key的出現次數value保存到字典中,最后根據字典dict的value進行排序。
#set() 函數創建一個無序不重復元素集,可進行關系測試,刪除重復數據,還可以計算交集、差集、並集等。

from collections import Counter
def CountNum(str_list):
    temp_set=set(str_list)
    print(temp_set)
    temp_dict={item:str_list.count(item) for item in temp_set}
    print(temp_dict)
    res_list=sorted(temp_dict.items(),key=lambda x:x[1],reverse=True)
    res_dict=dict(res_list)
    print(res_dict)

if __name__ == '__main__':
    str_list = ["a", "a", "c", "b", "d", "c", "c", "c", "d", "d"]
    CountNum(str_list)

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM