当前位置: 首页 > 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头文…...

【数据结构初阶】一. 复杂度讲解

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 学C的第三十四天【程序环境和预处理】_高高的胖子的博客-CSDN博客 1 . 算法效率 &#xff08;1&#xff09;. 什么是数据结构&#xff1a; 数据结构(Data Structure)是计算机存储、…...

Jmete+Grafana+Prometheus+Influxdb+Nginx+Docker架构搭建压测体系/监控体系/实时压测数据展示平台+遇到问题总结

背景 需要大批量压测时&#xff0c;单机发出的压力能力有限&#xff0c;需要多台jmeter来同时进行压测&#xff1b;发压机资源不够&#xff0c;被压测系统没到瓶颈之前&#xff0c;发压机难免先发生资源不足的情形&#xff1b;反复压测时候也需要在不同机器中启动压测脚本&…...

php提交表单将html相互字符转化的封装函数

在 PHP 中&#xff0c;您可以使用 htmlspecialchars() 函数将 HTML 字符转换为文本。该函数将把 <、>、" 和 等特殊字符转换为对应的 HTML 实体&#xff0c;从而避免跨站点脚本&#xff08;XSS&#xff09;攻击。 例如&#xff0c;如果您有一个表单输入字段的值&a…...

7 Series FPGAs GTX/GTH Transceivers

目录 1. Overview2. Block Diagram3. Transmitter4. Receiver5. Physical Coding Sublayer(PCS)6. Physical Medium Attachment(PMA)本博客为Xilinx 7系列FPGA的千兆比特高速收发器(Gigabit Transceiver, GT)介绍 ug476 - 7 Series FPGAs GTX GTH TransceiversUser Guide…...

iOS系统下轻松构建自动化数据收集流程

在当今信息爆炸的时代&#xff0c;我们经常需要从各种渠道获取大量的数据。然而&#xff0c;手动收集这些数据不仅耗费时间和精力&#xff0c;还容易出错。幸运的是&#xff0c;在现代科技发展中有两个强大工具可以帮助我们解决这一问题——Python编程语言和iOS设备上预装的Sho…...

Android基础之Activity生命周期

Activity是Android四大组件之一、称为之首也恰如其分。 Activity直接翻译为中文叫活动。在Android系统中Activity就是我看到的一个完整的界面。 界面中看到的TextView(文字&#xff09;、Button(按钮)、ImageView&#xff08;图片&#xff09;都是需要Activity来承载的。 总…...

Golang 程序漏洞检测利器 govulncheck(一):安装和使用方法

govulncheck 是什么&#xff1f; govulncheck 是一个命令行工具&#xff0c;可以帮助 Golang 开发者快速找到项目代码和依赖的模块中的安全漏洞。该工具可以分析源代码和二进制文件&#xff0c;识别代码中对这些漏洞的任何直接或间接调用。 默认情况下&#xff0c;govulnchec…...

强化学习算法总结 2

强化学习算法总结 2 4.动态规划 待解决问题分解成若干个子问题&#xff0c;先求解子问题&#xff0c;然后得到目标问题的解 需要知道整个状态转移函数和价值函数&#xff0c;状态空间离散且有限 策略迭代&#xff1a; 策略评估:贝尔曼期望方程来得到一个策略的 V ( s ) V(s…...

修改node_modules避免更新覆盖 patch-package

说明&#xff1a;直接修改第三方库的代码&#xff0c;会带来团队协作的问题&#xff0c;使用patch-package生成补丁包 什么是 patch-package&#xff1f; patch-package 是一个基于 Git 的工具&#xff0c;它可以帮助我们对依赖包进行修复补丁。通过创建一个与问题相关的补丁文…...

Elasticsearch安装,Springboot整合Elasticsearch详细教程

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎&#xff0c;能够实现近乎实时的搜索。 Elasticsearch官网https://www.elastic.co/cn/ 这篇文章主要简单介绍一下Elasticsearch&#xff0c;Elasticsearch的java API博主也在学习中&#xff0c;文章会持续更新~ …...