Counter()是python标准库collections下的一个计数器工具。
作用:统计可迭代对象中元素出现的次数,并返回一个字典。
(补充:可迭代对象包含列表、元组、字符串、字典等)
一、创建Counter()
1.# 创建一个新的空Counter
代码语言:python代码运行次数:0复制c = collections.Counter()
或
代码语言:python代码运行次数:0复制from collections import Counter
c = Counter()
2.函数参数为可迭代对象时,例:
代码语言:python代码运行次数:0复制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代码运行次数:0复制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