前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >collections.Counter()

collections.Counter()

原创
作者头像
好记性不如烂笔头
发布2024-01-05 11:26:54
900
发布2024-01-05 11:26:54
举报
文章被收录于专栏:自用学习自用学习

Counter()是python标准库collections下的一个计数器工具。

作用:统计可迭代对象中元素出现的次数,并返回一个字典。

(补充:可迭代对象包含列表、元组、字符串、字典等)

一、创建Counter()

1.# 创建一个新的空Counter

代码语言:python
复制
c = collections.Counter()

代码语言:python
复制
from collections import Counter

c = Counter()

2.函数参数为可迭代对象时,例:

代码语言:python
复制
list1 = [9,4,9,8,4]

c = collections.Counter(list1)

print(c)   # Counter({9: 2, 4: 2, 8: 1})

注意:当访问不存在的key时,返回值为0。

接上,print(c5) # 0

3.访问元素

Counter()是字典的子类,因此可以像使用字典那样访问计数器元素(值)。

访问方式:Counter“键名”/get()

4.学习案例:leetcode 两个数组的交集II https://leetcode.cn/problems/intersection-of-two-arrays-ii/description/

使用哈希表方法:

代码语言:python
复制
class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        # 为了降低空间复杂度,首先遍历较短的数组
        if len(nums1) > len(nums2):
            return self.intersect(nums2,nums1)

        ans = []
        c = collections.Counter(nums1)
        for n in nums2:
            if n in c:
                ans.append(n)
                c[n] -= 1
                if c[n] == 0:
                    c.pop(n)

        return ans

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档