返回

python 进阶之collections中的defaultdict

发布时间:2022-09-08 06:43:07 498
# python# 数据

@[toc]

假设一个场景:统计一个列表中每一个数据的数目,要求:尽可能不设定初始值

如果想不出来,可以先看最基础的设定初始值的办法

  • 首先需要导入库
    from collections import defaultdict

    原始方案

    user_dict = {}
    users = ["bobby1", "bobby2", "bobby3", "bobby4", "bobby4", "bobby2", "bobby2"]
    for user in users:
    if user not in user_dict:
        user_dict[user] = 1
    else:
        user_dict[user] += 1
    print(user_dict)

改进

使用setdefault函数完成

user_dict = {}
users = ["bobby1", "bobby2", "bobby3", "bobby4", "bobby4", "bobby2", "bobby2"]
for user in users:
user_dict.setdefault(user, 0)
user_dict[user] += 1
print(user_dict)

改进的改进

使用collection中的defaultdict方法


default_dict = defaultdict(int)

users = ["bobby1", "bobby2", "bobby3", "bobby4", "bobby4", "bobby2", "bobby2"]
for user in users:
default_dict[user] += 1
print(default_dict)


# 关于defaultdict方法的补充
> 在初始化并且设定一些特定值的时候可以用到

```python
def gen_default():
    return {
        "name": "",
        "nums": 0
        }

default_dict = defaultdict(gen_default)
print(default_dict["group1"])
  • 输出结果
    defaultdict(, {'bobby1': 1, 'bobby2': 3, 'bobby3': 1, 'bobby4': 2})
    {'name': '', 'nums': 0}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
DAY2 python基础 2022-09-08 05:56:28