当前位置: 首页 > news >正文

python中字典常用函数

字典常用函数

  1. cmp(dict1,dict2) (已删除,直接用>,<,==即可)

    • 如果两个字典的元素相同返回0,如果字典dict1大于字典dict2返回1,如果字典dict1小于字典dict2返回-1。

    • 先比较字典的长度,然后比较键,最后比较键对应的值

      dict1 = {'Name': 'Zara', 'Age': 7};
      dict2 = {'Name': 'Mahnaz', 'Age': 27};
      dict3 = {'Name': 'Abid', 'Age': 27};
      dict4 = {'Name': 'Zara', 'Age': 7};
      print ("Return Value : %d" %  cmp (dict1, dict2))
      print ("Return Value : %d" %  cmp (dict2, dict3))
      print ("Return Value : %d" %  cmp (dict1, dict4))
      # result
      Return Value : -1
      Return Value : 1
      Return Value : 0
      
  2. len(dict2)

    • 计算键的个数
  3. str(dict3)

    • 在Python中,使用str()函数可以将字典转换为字符串表示形式。这对于需要将字典的内容以字符串的形式进行输出、保存或传递给其他函数等情况非常有用。

      当你调用str()函数并传入一个字典作为参数时,它会返回一个包含字典内容的字符串。这个字符串的格式与字典结构相似,通常以花括号{}表示,每个键值对用冒号:连接,并且键值对之间用逗号,分隔。

      具体示例如下:

      my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
      my_str = str(my_dict)
      print(my_str)
      

      输出结果:

      {'name': 'John', 'age': 30, 'city': 'New York'}
      

      这样,你就可以在需要将字典转换为字符串的场景中使用str()函数了。比如,你可以将字典保存到文件中,或者将其作为参数传递给需要接受字符串作为输入的函数等。

  4. dict4.clear()

    • 用于删除字典内所有元素

      tinydict = {'Name': 'Zara', 'Age': 7};print ("Start Len : %d" %  len(tinydict))
      tinydict.clear()
      print ("End Len : %d" %  len(tinydict))
      
  5. dict5.copy()

    • 返回一个字典的浅复制。

      dict1 =  {'user':'runoob','num':[1,2,3]}dict2 = dict1          # 浅拷贝: 引用对象
      dict3 = dict1.copy()   # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用# 修改 data 数据
      dict1['user']='root'
      dict1['num'].remove(1)# 输出结果
      print(dict1)
      print(dict2)
      print(dict3)
      # result
      {'num': [2, 3], 'user': 'root'}
      {'num': [2, 3], 'user': 'root'}
      {'num': [2, 3], 'user': 'runoob'}
      #实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。
      
  6. dict6.fromkeys(seq[, value])

    • 用于创建一个新字典(不对dict6进行修改),以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值

    • seq – 字典键值列表。

    • value – 可选参数, 设置键序列(seq)的值,默认为 None。

      seq = ('Google', 'Runoob', 'Taobao')# 不指定默认的键值,默认为 None 
      thisdict = dict.fromkeys(seq)
      print ("新字典为 : %s" %  str(thisdict))# 指定默认的键值
      thisdict = dict.fromkeys(seq, 10)
      print ("新字典为 : %s" %  str(thisdict))
      # result
      新字典为 : {'Google': None, 'Taobao': None, 'Runoob': None}
      新字典为 : {'Google': 10, 'Taobao': 10, 'Runoob': 10}
      
  7. dict7.get(key,[,value])

    • key – 字典中要查找的键。

    • value – 可选,如果指定键的值不存在时,返回该默认值。

    • 返回指定键的值,如果键不在字典中返回默认值 None 或者设置的默认值。

      tinydict = {'Name': 'Runoob', 'Age': 27}print ("Age : %s" %  tinydict.get('Age'))# 没有设置 Sex,也没有设置默认的值,输出 None
      print ("Sex : %s" %  tinydict.get('Sex'))  # 没有设置 Salary,输出默认的值  0.0
      print ('Salary: %s' % tinydict.get('Salary', 0.0))
      # result
      Age : 27
      Sex : None
      Salary: 0.0
      
    • get()方法和dict[key]的区别

      get(key) 方法在 key(键)不在字典中时,可以返回默认值 None 或者设置的默认值。

      dict[key] 在 key(键)不在字典中时,会触发 KeyError 异常。

    • 对嵌套字典的使用

      tinydict = {'RUNOOB' : {'url' : 'www.runoob.com'}}res = tinydict.get('RUNOOB', {}).get('url')
      # 输出结果
      print("RUNOOB url 为 :  %s" % str(res))
      # result
      RUNOOB url 为 :  www.runoob.com
      
  8. dict8.has_key(key)

    • 用于判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false
  9. dict9.items()

    • 以列表返回可遍历的(键, 值) 元组数组。

      dict1 = {'a':1, 'b':2
      }
      print(dict1.items())
      # result
      dict_items([('a', 1), ('b', 2)])
      
  10. dict10.keys()

    • 以列表返回一个字典所有的键。

      dict1 = {'a':1, 'b':2
      }
      print("%s" % dict1.keys())
      print("%s" % list(dict1.keys()))
      # result
      dict_keys(['a', 'b'])
      ['a', 'b']
      
  11. dict11.setfault(key,default=None)

    • key – 查找的键值。

    • default – 键不存在时,设置的默认键值。

    • 如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。

      dict1 = {'a':1, 'b':2
      }
      print(dict1.setdefault('s',"no"))
      print(dict1)
      # result
      no
      {'a': 1, 'b': 2, 's': 'no'}
      
  12. dict12.update(tinydict)

    • 将字典tinydict更新到dict12中:

      如dict12中没有的,tinydit中有的,就直接将键值对添加到dict12中,如果tinydict中有的,dict12中也有,则将dict12中所对应的键的值改为tinydict中的值

      dict1 = {'a':1, 'b':2
      }
      dict2 = {'a':100, 'c':3
      }
      dict1.update(dict2)
      print(dict1)
      #result
      {'a': 100, 'b': 2, 'c': 3}
      
  13. dict13.values()

    • 以列表返回字典中的所有值。

      tinydict = {'Name': 'Runoob', 'Age': 7}print ("Value : %s" %  tinydict.values())
      print ("Value : %s" % list(tinydict.values()) )
      # result
      Value : dict_values(['Runoob', 7])
      Value : ['Runoob', 7]
      
  14. dict14.pop(key,[,default])

    • 删除字典给定键 key 所对应的值,返回值为被删除的值。

    • key - 要删除的键

    • default - 当键 key 不存在时返回的值

    • 返回被删除的值:

      • 如果 key 存在 - 删除字典中对应的元素
      • 如果 key 不存在 - 返回设置指定的默认值 default
      • 如果 key 不存在且默认值 default 没有指定 - 触发 KeyError 异常
      site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}element = site.pop('name')print('删除的元素为:')
      print(element)
      print('字典为:')
      print(site)
      # result
      删除的元素为:
      菜鸟教程
      字典为:
      {'url': 'www.runoob.com', 'alexa': 10000}
      
  15. dict15.popitem()

    • 返回并删除字典中的最后一对键和值。

    • 如果字典已经为空,却调用了此方法,就报出 KeyError 异常。

      site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
      pop_obj=site.popitem()
      print(pop_obj)
      print(site)
      # result
      ('url', 'www.runoob.com')
      {'name': '菜鸟教程', 'alexa': 10000}
      
http://www.lryc.cn/news/154818.html

相关文章:

  • leetcode88合并两个有序数组
  • Ceph入门到精通-Nginx 大量请求 延迟优化
  • Vulnstack----5、ATTCK红队评估实战靶场五
  • QT 5.8
  • AIGC+思维导图:提升你的学习与工作效率的「神器」
  • javaScript:DOM元素的获取(静态/动态获取)
  • 数据结构前言
  • Docker基于alpine带glibc的小型容器image
  • Nginx教程
  • 直播预约|哪吒汽车岳文强:OEM和Tier1如何有效对接网络安全需求
  • hiveserver2经常挂断的原因
  • openeuler 23.03 安装mysql 8.X
  • 网络安全—0基础学习笔记(黑客)
  • react HashRouter 与 BrowserRouter 的区别及使用场景
  • 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)
  • 多目标应用:基于多目标向日葵优化算法(MOSFO)的微电网多目标优化调度MATLAB
  • 智能安全科技,Vatee万腾为您服务
  • Scala中的类型检查和转换,以及泛型,scala泛型的协变和逆变
  • 【数据结构】C语言队列(详解)
  • 【数据结构初阶】一. 复杂度讲解
  • Jmete+Grafana+Prometheus+Influxdb+Nginx+Docker架构搭建压测体系/监控体系/实时压测数据展示平台+遇到问题总结
  • php提交表单将html相互字符转化的封装函数
  • 7 Series FPGAs GTX/GTH Transceivers
  • iOS系统下轻松构建自动化数据收集流程
  • Android基础之Activity生命周期
  • Golang 程序漏洞检测利器 govulncheck(一):安装和使用方法
  • 强化学习算法总结 2
  • 修改node_modules避免更新覆盖 patch-package
  • Elasticsearch安装,Springboot整合Elasticsearch详细教程
  • OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理