Python中collections模块的defaultdict进阶用法有哪些?

2026-05-16 14:411阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计320个文字,预计阅读时间需要2分钟。

Python中collections模块的defaultdict进阶用法有哪些?

@toc创建一个场景:统计一个列表中每个数据的索引。

要求:尽可能不设定初始值,如果不想出现,可以先查看最基础的设置方法。

首先,导入库:pythonfrom collections import defaultdict

@[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函数完成

Python中collections模块的defaultdict进阶用法有哪些?

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] += 1print(default_dict)

# 关于defaultdict方法的补充 > 在初始化并且设定一些特定值的时候可以用到 ```python def gen_default(): return { "name": "", "nums": 0 } default_dict = defaultdict(gen_default) print(default_dict["group1"])
  • 输出结果 defaultdict(<class 'int'>, {'bobby1': 1, 'bobby2': 3, 'bobby3': 1, 'bobby4': 2}) {'name': '', 'nums': 0}
标签:Def

本文共计320个文字,预计阅读时间需要2分钟。

Python中collections模块的defaultdict进阶用法有哪些?

@toc创建一个场景:统计一个列表中每个数据的索引。

要求:尽可能不设定初始值,如果不想出现,可以先查看最基础的设置方法。

首先,导入库:pythonfrom collections import defaultdict

@[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函数完成

Python中collections模块的defaultdict进阶用法有哪些?

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] += 1print(default_dict)

# 关于defaultdict方法的补充 > 在初始化并且设定一些特定值的时候可以用到 ```python def gen_default(): return { "name": "", "nums": 0 } default_dict = defaultdict(gen_default) print(default_dict["group1"])
  • 输出结果 defaultdict(<class 'int'>, {'bobby1': 1, 'bobby2': 3, 'bobby3': 1, 'bobby4': 2}) {'name': '', 'nums': 0}
标签:Def