python 中defaultdict()对字典进行初始化的用法介绍

 更新时间:2022年07月05日 09:09:37   作者:m0_46483236  
这篇文章主要介绍了python 中defaultdict()对字典进行初始化,一般情况下,在使用字典时,先定义一个空字典(如dict_a = {}),然后往字典中添加元素只需要 dict_a[key] = value即可,本文通过实例代码介绍具体用法,需要的朋友可以参考下

用法讲解:

  • 一般情况下,在使用字典时,先定义一个空字典(如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

参考:https://www.jianshu.com/p/bbd258f99fd3 

到此这篇关于python 中defaultdict()对字典进行初始化的文章就介绍到这了,更多相关python defaultdict()初始化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python通过kerberos安全认证操作kafka方式

    Python通过kerberos安全认证操作kafka方式

    这篇文章主要介绍了Python通过kerberos安全认证操作kafka方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Django中的cookie和session

    Django中的cookie和session

    这篇文章主要介绍了Django中的cookie和session实例详解,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 深入了解python装饰器

    深入了解python装饰器

    这篇文章主要介绍了解python装饰器,装饰器定义一个为其他函数添加功能的函数,装饰器就是在不修改装饰对象源代码以及调用方式的前提下,为装饰对象添加新功能,下面和小编一起进入文章内容了解更多知识,需要的朋友可以参考一下
    2022-03-03
  • django数据库迁移migration实现

    django数据库迁移migration实现

    这篇文章主要介绍了django数据库迁移migration实现,迁移任务是根据对models.py文件的改动情况,添加或者删除表和列,下面详细的相关内容需要的小伙伴可以参考一下
    2022-02-02
  • Python使用requests xpath 并开启多线程爬取西刺代理ip实例

    Python使用requests xpath 并开启多线程爬取西刺代理ip实例

    这篇文章主要介绍了Python使用requests xpath 并开启多线程爬取西刺代理ip实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python实现平行坐标图的两种方法小结

    Python实现平行坐标图的两种方法小结

    今天小编就为大家分享一篇Python实现平行坐标图的两种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python操作mysql代码总结

    python操作mysql代码总结

    本篇文章给大家分享了python操作mysql的步骤以及相关实例代码,对此有需要的朋友可以参考学习下。
    2018-06-06
  • Python eval()和exec()函数使用详解

    Python eval()和exec()函数使用详解

    exec函数执行的是python语句,没有返回值,eval函数执行的是python表达式,有返回值,exec函数和eval函数都可以传入命名空间作为参数,本文给大家介绍下Python eval()和exec()函数,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • Python Color类与文字绘制零基础掌握

    Python Color类与文字绘制零基础掌握

    这篇文章主要介绍了Python Color类与文字绘制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 深入理解Django-Signals信号量

    深入理解Django-Signals信号量

    这篇文章主要介绍了深入理解Django-Signals信号量,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02

最新评论