当前位置: 首页 > 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}
      

相关文章:

python中字典常用函数

字典常用函数 cmp(dict1,dict2) &#xff08;已删除&#xff0c;直接用>,<,即可&#xff09; 如果两个字典的元素相同返回0&#xff0c;如果字典dict1大于字典dict2返回1&#xff0c;如果字典dict1小于字典dict2返回-1。 先比较字典的长度&#xff0c;然后比较键&#x…...

leetcode88合并两个有序数组

题目&#xff1a; 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&…...

Ceph入门到精通-Nginx 大量请求 延迟优化

优化nginx以处理大量请求并减少延迟可以通过以下几种方法实现&#xff1a; 调整worker_processes和worker_connections参数&#xff1a;增加worker_processes值可以增加nginx的进程数量&#xff0c;提高并发处理能力。增加worker_connections参数的值可以增加每个worker进程可…...

Vulnstack----5、ATTCK红队评估实战靶场五

文章目录 一 环境搭建二 外网渗透三 内网信息收集3.1 本机信息收集3.2 域内信息收集 四 横向移动4.1 路由转发和代理通道4.2 抓取域用户密码4.3 使用Psexec登录域控4.4 3389远程登录 五、痕迹清理 一 环境搭建 1、项目地址 http://vulnstack.qiyuanxuetang.net/vuln/detail/7/ …...

QT 5.8

QT与Qt Creator&#xff0c;前者是框架&#xff0c;类似与MFC&#xff0c;而后者是QT的编译器&#xff0c;也可以使用Visual studio编辑&#xff0c;编译需要其他的 Index of /new_archive/qt/5.8/5.8.0...

AIGC+思维导图:提升你的学习与工作效率的「神器」

目录 一、产品简介 二、功能介绍 2.1 AI一句话生成思维导图 2.2百万模版免费用 2.3分屏视图&#xff0c;一屏读写 2.4团队空间&#xff0c;多人协作 2.5 云端跨平台化 2.6 免费够用&#xff0c;会员功能更强大 2.7 支持多种格式的导入导出 三、使用教程 3.1 使用AI…...

javaScript:DOM元素的获取(静态/动态获取)

目录 一.dom元素获取的意义与使用场景 使用场景&#xff08;绝大多数js操作都需要dom操作&#xff09; 总结/疑问解答&#xff01; 二.DOM元素获取的常用方法&#xff08;重点&#xff09; 获取dom元素&#xff08;动态&#xff09; document.gerElementbyId() docume…...

数据结构前言

一、什么是数据结构&#xff1f; 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 上面是百度百科的定义&#xff0c;通俗的来讲数据结构就是数据元素集合与数据元素集合或者数据元素与数据元素之间的组成形式。 举个…...

Docker基于alpine带glibc的小型容器image

由于程序是C写的&#xff0c;gc编译&#xff0c;找了几个容器&#xff0c;生成比较小的是debianslim和ubuntu&#xff0c;生成后的大小分别为88MB&#xff0c;和91MB&#xff0c;还是太大了&#xff0c;于是想起一些小型容器如busybox或者alpine自己装glibc&#xff0c;但是试了…...

Nginx教程

Nginx教程 01-Nginx简介02-windows安装Nginx03-Nginx目录结构04-Linux安装Nginx05-linux下源码安装nginx06-linux下nginx配置07-在docker中安装nginx08-源码安装和yum安装的区别09-Nginx运行组和运行用户10-卸载nginx11-nginx的基本原理和架构12-nginx是如何处理请求的13-nginx…...

直播预约|哪吒汽车岳文强:OEM和Tier1如何有效对接网络安全需求

信息安全是一个防护市场。如果数字化程度低&#xff0c;数据量不够&#xff0c;对外接口少&#xff0c;攻击成本高&#xff0c;所获利益少&#xff0c;自然就没有什么攻击&#xff0c;车厂因此也不需要在防护上花费太多成本。所以此前尽管说得热闹&#xff0c;但并没有太多真实…...

hiveserver2经常挂断的原因

hiveserver2经常挂断的原因 HiveServer2 经常挂断可能有多种原因&#xff0c;以下是一些可能导致挂断的常见原因&#xff1a; 资源不足&#xff1a;HiveServer2 需要足够的内存和 CPU 资源来处理查询请求。如果资源不足&#xff0c;可能会导致 HiveServer2 挂断。请确保在配置…...

openeuler 23.03 安装mysql 8.X

遇到一堆问题&#xff1a;直接从mysql官下载&#xff0c;都不行。下列是失败的&#xff1a; mysql80-community-release-el8-1.noarch.rpm mysql-8.0.34-1.el8.x86_64.rpm-bundle.tar mysql-8.1.0-1.el9.x86_64.rpm-bundle.tar 后来想从openeuler下载应该靠谱&#xff1a;ht…...

网络安全—0基础学习笔记(黑客)

一、前言 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解决. …...

react HashRouter 与 BrowserRouter 的区别及使用场景

一、简介 在单页面应用中&#xff0c;如何在切换页面后&#xff0c;不刷新浏览器呢&#xff1f;为了解决这个问题&#xff0c;有两种方法&#xff0c;就是hash路由模式、history路由模式&#xff0c;而 react router 的两种路由就是使用这两种路由模式。 二、区别 HashRouter…...

痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)

https://www.cnblogs.com/henjay724/p/13770137.html 大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计。 在i.MXRT硬件那些事系列之《在串行NOR Flash XIP调试原理》一文中&#xff0c;痞…...

多目标应用:基于多目标向日葵优化算法(MOSFO)的微电网多目标优化调度MATLAB

一、微网系统运行优化模型 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、多目标向日葵优化算法 多目标向日葵优化算法&#xff08;Multi-objective sunflower optimization&#xff0c;MOS…...

智能安全科技,Vatee万腾为您服务

在智能科技的引领下&#xff0c;Vatee万腾将为您点亮投资之路&#xff0c;助您在金融市场中抓住机遇&#xff0c;实现财务目标。作为一家融合科技与投资的先锋平台&#xff0c;Vatee万腾致力于为投资者提供智能化的投资方案和支持。 Vatee万腾以其先进的智能科技为基础&#xf…...

Scala中的类型检查和转换,以及泛型,scala泛型的协变和逆变

Scala中的类型检查和转换&#xff0c;以及泛型 类型检查和转换 说明 &#xff08;1&#xff09; obj.isInstanceOf[T]&#xff1a;判断 obj 是不是T 类型。 &#xff08;2&#xff09; obj.asInstanceOf[T]&#xff1a;将 obj 强转成 T 类型。 &#xff08;3&#xff09; cla…...

【数据结构】C语言队列(详解)

前言: &#x1f4a5;&#x1f388;个人主页:​​​​​​Dream_Chaser&#xff5e; &#x1f388;&#x1f4a5; ✨✨专栏:http://t.csdn.cn/oXkBa ⛳⛳本篇内容:c语言数据结构--C语言实现队列 目录 一.队列概念及结构 1.1队列的概念 1.2队列的结构 二.队列的实现 2.1头文…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...