python3 for计数_python怎么实现计数?
python中實現計數的一般方法:
1、使用字典解決(dict)
字典計數是最常用的計數方法,逐個遍歷數據結構中元素,將元素作為鍵,元素個數作為值進行統計,依次加入字典中。
實例演示test_lst?=?['a',?'b',?'c',?'d',?'e',?'f',?'g',?'a',?'f',?'s',?'b',?'h',?'k',?'i',?'j',?'c',?'d',?'f']
counter_dict?=?{}
for?item?in?test_lst:if?item?in?counter_dict:?counter_dict[item]?+=?1?else:?counter_dict[item]?=?1print(counter_dict)
程序運行結果>>>{'i': 1, 'a': 2, 's': 1, 'g': 1, 'b': 2, 'k': 1, 'h': 1, 'j': 1, 'c': 2, 'e': 1, 'd': 2, 'f': 3}
2、使用dict.setdefault(key, dvalue)方法解決
可以使用dict.setdefault()方式進行統計,比起直接使用dict,該方法不用使用if-else語句進行判斷,且避免了KeyError異常。
實例演示test_lst?=?['a',?'b',?'c',?'d',?'eshi',?'f',?'g',?'a',?'f',?'s',?'b',?'h',?'k',?'i',?'j',?'c',?'d',?'f']
counter_sdict?=?{}for?item?in?test_lst:counter_sdict[item]?=?counter_sdict.setdefault(item,?0)?+?1print(counter_sdict)
程序運行結果>>>{'k': 1, 'e': 1, 'c': 2, 'a': 2, 'b': 2, 'd': 2, 'f': 3, 'g': 1, 's': 1, 'j': 1, 'i': 1, 'h': 1}
同dict方法,但程序的容錯性比上面的方法要好,且數據量大時,該程序比使用dict的傳統方法要節省時間。
3、使用defaultdict類解決
defaultdict類的初始化函數接受一個類型作為參數,當所訪問的鍵不存在的時候,它自動實例化一個值作為默認值。使用defaultdict與使用dict的區別在于,defaultdict能夠自動對獲取結果進行排序,這就解決了我們后續排序的麻煩,并且defaushltdict是自帶“輪子”,就不用重新創造了,節省開發時間哦。
實例演示from?collections?import?defaultdict
test_lst?=?['a',?'b',?'c',?'d',?'e',?'f',?'g',?'a',?'f',?'s',?'b',?'h',?'k',?'i',?'j',?'c',?'d',?'f']
counter_ddict?=?defaultdict(int)for?item?in?test_lst:counter_ddict[item]?+=?1print(counter_ddict)
程序運行結果>>>defaultdict(, {'k': 1, 'e': 1, 'c': 2, 'a': 2, 'b': 2, 'd': 2, 'f': 3, 'g': 1, 's': 1, 'j': 1, 'i': 1, 'h': 1})
4、結合使用set和list兩種數據結構來解決
思路如下:首先,初始化一個set和一個列表list,獲取序列中需要統計的元素;然后,依次遍歷set中的內容,使用需要統計序列的cosut()方法,分別統計set中的內容并計入新列表中。
實例演示test_lst?=?['a',?'b',?'c',?'d',?'e',?'f',?'g',?'a',?'f',?'s',?'b',?'h',?'k',?'i',?'j',?'c',?'d',?'f']
r_lst?=?[]temp?=?set(test_lst)for?item?in?temp:r_lst.append((item,?test_lst.count(item)))print(r_lst)
程序運行結果>>>[('j', 1), ('k', 1), ('a', 2), ('s', 1), ('d', 2), ('h', 1), ('f', 3), ('c', 2), ('e', 1), ('b', 2), ('i', 1), ('g', 1)]
總結
以上是生活随笔為你收集整理的python3 for计数_python怎么实现计数?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓视频播放器哪个好用(安卓视频播放器哪
- 下一篇: 世界十大红酒品牌(全球10大最畅销葡萄酒