題目
給定一個列表,列表元素僅包含字母,請統計每個字母的出現次數,並按出現次數排序,要求最終返回結果為字典形式。
例如:
給定一個列表:['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)