快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

python中实现计数的方法-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联是专业的屯留网站建设公司,屯留接单;提供成都网站设计、成都做网站、外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行屯留网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

这篇文章主要介绍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)]

以上是python中实现计数的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!


本文名称:python中实现计数的方法-创新互联
分享路径:http://6mz.cn/article/ccosje.html

其他资讯