意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Python中如何用defaultdict实现字典初始化

来源:恒创科技 编辑:恒创科技编辑部
2023-12-28 08:21:59
这篇文章主要介绍了Python中如何用defaultdict实现字典初始化相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中如何用defaultdict实现字典初始化文章都会有所收获,下面我们一起来看看吧。



Python中如何用defaultdict实现字典初始化


用法讲解:
一般情况下,在使用字典时,先定义一个空字典(如dict_a = {}),然后往字典中添加元素只需要 dict_a[key] = value即可。读取字典中的元素时同理,但前提时字典中存在这个key,否则就会报错。 而defaultdict()的作用在于,即使字典中的key不存在,在查找时也会对它的value赋予一个默认值,从而避免了报错。 具体来说,defaultdict接受一个工厂函数作为参数,如下来构造:
dict =defaultdict(factory_function)
这个factory_function可以是list、set、str等等,作用是当key不存在时,返回的是工厂函数的默认值,比如list对应[ ],str对应的是空字符串,set对应set( ),int对应0
from collections import defaultdict
dict1 = defaultdict(int)  # dict1[1]=0
dict2 = defaultdict(set)  # dict2[1]=set()
dict3 = defaultdict(str)  # dict3[1]=
dict4 = defaultdict(list) # dict4[1]=[

应用举例: 题目描述:

1. 不使用defaultdict():

def isAnagram(s, t):
    """
    :type s: str
    :type t: str
    :rtype: bool
    """
    dict_s = {}
    for item in s:
        if item not in dict_s.keys():
            dict_s[item] = 1
        else:
            dict_s[item] += 1
    dict_t = {}
    for item in t:
        if item not in dict_t.keys():
            dict_t[item] = 1
        else:
            dict_t[item] += 1
    return dict_s == dict_t

2. 使用defaultdict():

def isAnagram(self, s, t):
    """
    :type s: str
    :type t: str
    :rtype: bool
    """
    from collections import defaultdict
    dict_s = defaultdict(int)
    dict_t = defaultdict(int)
    for item in s:
        dict_s[item] += 1
    for item in t:
        dict_t[item] += 1
    return dict_s == dict_t

这篇关于“Python中如何用defaultdict实现字典初始化”的文章就介绍到这了,更多相关的内容,欢迎关注恒创科技,小编将为大家输出更多高质量的实用文章!
上一篇: DataFrame数据合并的方法有什么,区别在哪 下一篇: Pandas查询数据有哪些方法,步骤是什么