Python基础之——字典dict

本文介绍了Python中collections模块的Counter类,展示了如何使用Counter类来统计列表中元素的出现次数,并通过实例演示了如何利用Counter类求两个列表的交集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典不常见的用法

一个重要的collections模块和Counter类

1.collections模块

collections模块包含除了dict、set、list、tuple以外的一些特殊的容器类型,比如下面几个:
(1)OrderedDict类:排序字典,是字典的子类。
(2)defaultdict:使用工厂函数创建字典,使不用考虑缺失的字典键。
(3)Counter类:为hashable对象计数,是字典的子类。

2.Counter类

counter类主要是用来跟踪值的出现的个数。存储形式是字典的键值对形式,其中key是出现的元素,value是该元素出现的次数。

 from collections import Counter
 nums1 = [1,2,2,1], nums2 = [2,2]
 dict1 = Counter(nums1)
 dict2 = Counter(nums2)
 return list((dict1&dict2).elements())
 

好了,话不多说,上面代码主要实现了 两个数组的交集,这是LeetCode上面的一道题。
这里首先将列表转成字典形式

dict1 = Counter(nums1)
dict1
>>Counter({1: 2, 2: 2})
dict2 = Counter(nums2)
dict2
>>Counter({2: 2})
print(list((dict1&dict2).elements()))
>>[2, 2]

好了,记住一个小知识的方法就是实现它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值