最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python怎么实现计数?

    正文概述    2020-02-16   282

    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(<class 'int'>, {'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怎么实现计数?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元