本文主要是介绍Python基础语法中defaultdict的使用小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要...
python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,但有一个关键的不同点:当访问一个不存在的键时,defaultdict不会抛出KejsphpyError异常,而是会自动为该键创建一个默认值。这种特性使得在处理需要初始化新键的情况时更加方便。
创建defaultdict
要使用defaultdict
,首先需要从collections
模块导入它:
from collections import defaultdict
然后可以创建一个defaultdict
实例,传入一个可调用对象作为default_factory参数。
这个可调用对象决定了当http://www.chinasem.cn访问不存在的键时应该返回的默认值类型。
例如:
- 使用
int
作为default_factory
将返回整数0
。 - 使用
list
作为default_factory
将返回空列表[]
。 - 使用
set
作为default_factory
将返回空集合set()
。 - 使用自定义函数作为
default_factory
将根据该函数的返回值来确定默认值。
示例1
from collections import defaultdict bag = ['apple', 'orange', 'cherry', 'apple','apple', 'cherry', 'blueberry'] count = defaultdict(int) # 使用int作为default_factory print(f"\n > > > > > > count:\n {count}") print(f"\n > > > > > > type(count):\n {type(count)}") for fruit in bag: count[fruit] += 1 print(f"\n > > > > > > count:\n {count}")
输出:
> > > > > > count:
defaultdict(<class 'int'>, {})> > > > > > type(count):
<class 'collections.defaultdict'>> > > > > > count:
defaultdict(<class 'int'>, {'apple': 3, 'orange': 1, 'cherry': 2, 'blueberry': 1})
在这个例子中,对一个不存在的键进行操作时,defaultdict会自动http://www.chinasem.cn为该键分配一个默认值0,并允许直接对其进行递增操作。
示例2
from collections import defaultdict names = [('group1', 'Alice'), ('group2', 'Bob'), ('group1', 'Charlie')] grouped_names = defaultdict(list) print(f"\n > > > > > > grouped_names:\n {grouped_names}") print(f"\n > > > > > > type(grouped_names):\n {type(grouped_names)}") for group, name in names: grouped_names[group].append(name) print(f"\n > > > > > > grouped_names:\n {grouped_names}")
输出:
> > > > > > grouped_names:
defaultdict(<class 'list'>, {})> > > > > > type(grouped_names):
<class 'collections.defaultdict'>> > > > > > grouped_names:
defaultdict(<class 'list'>, {'group1': ['Alice', 'Charlie'], 'group2': ['Bob']})
在这个例子中,根据第一个元素对名字进行了分组。如果使用普通字典,则需要额外的逻辑来检查和初始化每个新组。
到此这篇关于Python基础语法中defaultdict的使用小结的文章就介绍到这了,更多相关Python defaultdict内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客javascript栈(www.chinasem.cn)!
这篇关于Python基础语法中defaultdict的使用小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!