字典操作(获取类操作、添加更新类操作、字典删除类操作)

字典数据获取类操作

  • keys() 用来获取字典中所有的 key, 保存到一个列表中,并以 dict_keys类型返回
    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
    ks = stu.keys()
    print(ks)
    
  • values() 用来获取字典中所有的 value ,保存到一个列表中,并以 dict_values 类型返回
    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
    ks = stu.values()
    print(ks)
    
  • items() 用来获取字典中所有的键值对,每一个元素键值对都以一个元组保存,将所有元素元组保存到一个列表中,并以 dict_items 类型返回
    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
    ks = stu.items()
    print(ks)
    
  • get(key, default) 用来获取 key 对应的值,如果指定的 key 不存在,则返回默认值。

    字典可以使用 字典对象[key] 的形式获取键值对,但是该方法如果指定的 key 不存在,程序会抛出一个错误。此时可以使用 get() 替代该取值方法

    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
    # print(stu["name"])
    # print(stu["hobby"])
    print(stu.get("name"))
    print(stu.get("hobby"))
    print(stu.get("hobby","无数据"))
    

字典添加更新类操作

  • setdefault(key,default) 给一个不存在的 key 添加一个默认值并将该键值对保存到字典中。

    在一些场景下,字典的 key 存在,但是该 key 却没有对应的值,此时,就可以使用该方法,为当前的 key 添加一个默认值。比如服务端要保存客户端发起请求时携带的请求头中的信息。

    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}stu.setdefault("hobby1")
    print(stu)
    stu.setdefault("hobby2", "无")
    print(stu)
    
  • fromkeys(keys,val) 用于创建一个新字典,以序列 keys 中元素做字典的键,value 为字典所有键对应的初始值,默认为 None

    该方法是一个静态方法,需要使用字典类型名 dict 调用。 该方法如果给给定 keys 参数,则所有的key对应值都为默认值 None,如果给定 val 值,则所有 key 对应的值为 val

    ks = ("name", "age", "gender")
    s1 = dict.fromkeys(ks)
    print(s1)s2 = dict.fromkeys(ks,"无")
    print(s2)
    
  • update(dict | iterable) 使用参数中的数据更新当前字典。

    该方法的参数可以接收一个字典(大多数的使用方式),也可以接收一个可迭代对象,如果参数数据中的 key 在当前字典中存在,则使用新值更新字典中的键值对,如果参数数据中的 key 在当前字内中不存在,则将键值对添加到当前字典中。

    # 更新目标数据是一个字典
    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
    newStu = {"name":"Jack","hobby":"eat"}
    stu.update(newStu)
    print(stu)
    # 更新目标数据是一个可迭代对象
    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
    newStu = (("name","Rose"),["hobby","play"])
    stu.update(newStu)
    print(stu)
    

字典删除类操作

  • popitem() 用来获取并删除字典中的最后一个键值对,返回一个元组,如果字典为空时,则抛出一个错误
    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
    v = stu.popitem()
    print(v)
    print(stu)v = stu.popitem()
    print(v)
    print(stu)print({}.popitem())
    
  • pop(key) 用于获取并删除字典中指定 key 对应的键值对。如果指定的 key 不存在,则抛出错误
    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}
    v = stu.pop("name")
    print(v)
    print(stu)
    
  • clear() 清空字典中所有的键值对元素
    stu = {'name': 'Tom', 'age': 23, 'gender': 'male', 'address': 'BeiJing'}print(stu)
    stu.clear()
    print(stu)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

注册中心组成结构和基本原理解析

假如你正在设计和开发一个分布式服务系统,系统中存在一批能够独立运行的服务,而在部署上也采用了集群模式以防止出现单点故障。显然,对于一个完整的业务系统而言,这些服务之间需要相互调用并形成复杂的访问链路,一种可…

Casual decoder 和prefix decoder 区别

Causal Decoder(因果解码器)和Prefix Decoder(前缀解码器)是两种不同的语言模型架构,它们在处理文本生成任务时采用不同的注意力机制。 Causal Decoder是一种自回归模型,它在生成文本时只能依赖于已经生成…

mysql面试题 Day5

1 什么是事务? 事务是指 多个数据库操作组成一个逻辑执行单元,满足ACID四个条件。 A是指原子性,事务保证操作要么全部完成,要么全部不完成,不会出现部分完成的情况; C是指一致性,事务执行后&…

C++ 定时器触发

c定时器&#xff0c;能够定时触发&#xff0c;即每隔一段固定时间执行一下函数 #include <iostream> #include <thread> #include <chrono> #include <signal.h> #include <time.h> #include <cstring> #include <glog/logging.h>#…

SQL Server解决Float字段使用ISNULL时报错

SQL Server解决Float字段使用ISNULL时报错 一、前言1.报错内容2.解决案例 一、前言 1.报错内容 > [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]从数据类型 varchar 转换为 float 时出错。 (8114)。这个错误通常是由于SQL Server在执行ISNULL函数时遇到…

防抖和节流使用场景

防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;是两种常用的性能优化技术&#xff0c;用于限制某些高频率执行的函数的调用次数&#xff0c;从而优化性能和用户体验。它们的主要区别在于控制函数执行频率的策略不同。 防抖&#xff08;Debounce…

Mini-L-CTF-2022 minispringboot Thymeleaf模板注入 spel的绕过

Mini-L-CTF-2022 minispringboot Thymeleaf模板注入 spel的绕过 就是一个低版本的Thymeleaf注入 漏洞点 public class MainController {GetMapping({"/{language}"})public String test(PathVariable(name "language") String language, RequestParam(…

codesys多段直线电机跨电机控制

1. 电机描述 在X轴上有多段直线电机&#xff0c;如下图有9个&#xff0c;从X1到X9. 2.codesys程序结构 程序名称&#xff1a;Pou_two_motors 动作名称&#xff1a;ACT_move 把这个程序搞到任务配置里面 通过ethercat总线命名一下这些电机&#xff0c;方便调用。 3.程序内容 P…

油烟监测仪:守护厨房,让蓝天白云成为常态

夏日炎炎&#xff0c;白天的酷暑让人们更加向往夜晚的凉爽与惬意。在这样的季节里&#xff0c;品尝各式烧烤、小龙虾&#xff0c;再搭配一杯冰镇啤酒&#xff0c;成为了许多市民夜晚消遣的不二选择。然而&#xff0c;随之而来的餐饮油烟问题也进入了高发阶段&#xff0c;对周边…

智能锁赛博化,凯迪仕携全球顶尖科技亮相建博会!

7月8日&#xff0c;作为大家居建材行业全球规模第一大展&#xff0c;2024中国建博会&#xff08;广州&#xff09;在广交会展馆正式拉开序幕。据官方数据显示&#xff0c;本届展会展出规模展览总规模近40万平方米&#xff0c;建筑装饰领域各细分题材的一线品牌几乎全部参展。 其…

构建安全稳定的应用:SpringSecurity实用指南

以下是关于构建安全稳定的应用&#xff1a;Spring Security 实用指南的详细介绍&#xff1a; 一、Spring Security 概述 Spring Security 是一个功能强大且高度可定制的安全框架&#xff0c;旨在为 Java 应用程序提供全面的安全解决方案。它涵盖了认证&#xff08;Authenticati…

循环练习题

思路&#xff1a; 代码&#xff1a; public static void main(String[] args) {double sum0;for (int i1;i<100;i){if (i%2!0){sum1.0/i;}else {sum-1.0/i;}}System.out.println(sum);} 结果为&#xff1a;

Java 方法中的参数:灵活应用与技巧

Java 方法的参数是在方法定义中声明的变量&#xff0c;用于接收调用者传递的数据。参数可以是基本数据类型&#xff08;如整数、浮点数&#xff09;、对象引用或者特定类型&#xff08;如数组、枚举&#xff09;。方法可以根据参数的类型和数量来执行不同的逻辑&#xff0c;通过…

vscode取消未使用变量的提示(爆红)

目前项目正在使用ts&#xff08;TypeScript&#xff09;&#xff0c;可以在 tsconfig.json 文件中调整编译选项 在你的项目中找到并打开 tsconfig.json 文件&#xff0c;将noUnusedLocals和noUnusedParameters设置为false&#xff0c;关闭vscode重新打开项目即可 {"comp…

Mysql 高性能索引

引言 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 常见的索引类型包括B-Tree索引、哈希索引、空间数据索引&#xff08;R-Tree&#xff09;、全文索引。 索引的类型 在MySQL中&#xff0c;索引是在 存储引擎层 而不是服…

js打印出堆栈

在JavaScript中&#xff0c;直接获取并打印完整的调用堆栈&#xff08;stack trace&#xff09;并不像在一些其他语言中那样直接。不过&#xff0c;有几种方法可以实现类似的功能&#xff0c;具体取决于你的需求和运行环境&#xff08;如浏览器环境或Node.js环境&#xff09;。…

井字游戏00

题目链接 井字游戏 题目描述 注意点 1 < board.length board[i].length < 100输入一定遵循井字棋规则 解答思路 如果某一方想要获胜&#xff0c;则其需要占满某一行或某一列或对角线&#xff0c;所以只需要根据第一行和第一列判断是否填充完某一行或某一列或对角线…

EHS管理体系,重塑造企业竞争力的关键密码

在当今这个快速发展的时代&#xff0c;企业面临着前所未有的挑战与机遇。随着全球环保意识的普遍觉醒&#xff0c;以及社会各界对企业社会责任的日益关注&#xff0c;EHS&#xff08;环境&#xff0c;健康&#xff0c;安全&#xff09;管理体系成为了企业稳健前行的重要基石。它…

设计模式之Facade设计模式

Facade设计模式&#xff0c;也称为外观模式&#xff0c;是一种结构型设计模式&#xff0c;它主要用于为子系统中的一组接口提供一个统一的高层接口&#xff0c;从而使得子系统更加容易使用。以下是关于Facade设计模式的详细介绍&#xff1a; 一、定义 Facade模式为多个复杂的…

一款强大且免费开源的多连接数据库管理工具

大家好&#xff0c;今天给大家分享一款免费开源的跨平台数据库管理工具DbGate。 DbGate是一款免费开源的跨平台数据库管理工具&#xff0c;支持多种数据库&#xff0c;包括MySQL、PostgreSQL、SQL Server、MongoDB、SQLite等。它可以在Windows、Linux、Mac操作系统上运行&#…