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

[Python学习篇] Python字典

字典是一种可变的、无序的键值对(key-value)集合。字典在许多编程(Java中的HashMap)任务中非常有用,因为它们允许快速查找、添加和删除元素。字典使用花括号 {} 表示。字典是可变类型。

语法:

变量 = {'key1': 'value1', 'key2': 'value2', 'keyn': 'valuen'}

# 空字典

变量 = {}

变量 = dict()

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1)

插入/修改数据

语法:

字典序列[key] = value        # key不存在就插入数据。key存在就修改key的value。

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
dict1['id'] = 1
print(dict1)  # {'name': 'Tom', 'age': 18, 'gender': '男', 'id': 1}

删除数据

  • del() / del:删除字典或删除字典中指定的键值对。

语法:

del 字典序列[key]           # del (字典序列)

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
del dict1['age']
print(dict1)  # 删除键值对,打印 {'name': 'Tom', 'gender': '男'}del dict1  # 删除对象
  • clear():清空字典

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
dict1.clear()
print(dict1)  # {}

查找数据

  • key的方式查找:查找到数据,返回数据。没有查找到数据,报错 KeyError: 'key'

语法:

字典序列[key]       

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1['name'])  # Tom
  • get():如果当前查找的key不存在则返回第⼆个参数(默认值),如果省略第⼆个参数,则返回None。

语法:

字典序列.get(key, 默认值)

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.get('name', "Jerry"))  # Tom
  • keys():获取字典所有的key,返回一个列表序列。

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.keys())  # dict_keys(['name', 'age', 'gender'])
  • values():获取字典所有的value,返回一个列表序列。

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.values())  # dict_values(['Tom', 18, '男'])
  • items():获取字典所有的键值对。返回一个列表序列,列表中存放着键值对的元组。

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.items())  # dict_items([('name', 'Tom'), ('age', 18), ('gender', '男')])

循环遍历

  • 遍历字典的key

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for key in dict1.keys():print(key)

  • 遍历字典的value

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for value in dict1.values():print(value)

  • 遍历字典的元素

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for item in dict1.items():print(item)

  • 遍历字典的键值对

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for key, value in dict1.items():print(f'key: {key}, value: {value}')

相关文章:

[Python学习篇] Python字典

字典是一种可变的、无序的键值对(key-value)集合。字典在许多编程(Java中的HashMap)任务中非常有用,因为它们允许快速查找、添加和删除元素。字典使用花括号 {} 表示。字典是可变类型。 语法: 变量 {key1…...

react项目中如何书写css

一:问题: 在 vue 项目中,我们书写css的方式很简单,就是在 .vue文件中写style标签,然后加上scope属性,就可以隔离当前组件的样式,但是在react中,是没有这个东西的,如果直…...

PostgreSQL源码分析——绑定变量

这里分析一下函数中应用绑定变量的问题,但实际应用场景中,不推荐这么使用。 prepare divplan2(int,int) as select div($1,$2); execute divplan2(4,2);语法解析 分别分析prepare语句以及execute语句。 gram.y中定义 /******************************…...

Zynq学习笔记--了解中断配置方式

目录 1. 简介 2. 工程与代码解析 2.1 Vivado 工程 2.2 Vitis 裸机代码 2.3 关键代码解析 3. 总结 1. 简介 Zynq 中的中断可以分为以下几种类型: 软件中断(Software Generated Interrupt, SGI):由软件触发,通常…...

吴恩达机器学习 第二课 week2 多分类问题

目录 01 学习目标 02 实现工具 03 概念与原理 04 应用示例 05 总结 01 学习目标 (1)理解二分类与多分类的原理区别 (2)掌握简单多分类问题的神经网络实现方法 (3)理解多分类问题算法中的激活函数与损失…...

112、路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点…...

Vue 封装组件之Input框

封装Input组件:MyInput.vue <template><div class"base-input-wraper"><el-inputv-bind"$attrs"v-on"$listeners"class"e-input":style"inputStyle":value"value":size"size"input&quo…...

一段代码让你了解Java中的抽象

我们先来看一道题&#xff01; 计算几何对象的面积之和&#xff09;编写一个方法&#xff0c;该方法用于计算数组中所有几何对象的面积之和。该方法的签名是&#xff1a; public static double sumArea(GeometricObject[] a) 编写一个测试程序&#xff0c;该程序创建一个包含四…...

Sping源码(九)—— Bean的初始化(非懒加载)— Bean的创建方式(factoryMethod)

序言 前面文章介绍了在Spring中多种创建Bean实例的方式&#xff0c;包括采用FactoryBean的方式创建对象、使用反射创建对象、自定义BeanFactoryPostProcessor。 这篇文章继续介绍Spring中创建Bean的形式之一——factoryMethod。方法用的不多&#xff0c;感兴趣可以当扩展了解。…...

绝对全网首发,利用Disruptor EventHandler实现在多线程下顺序执行任务

disruptor有两种任务处理器&#xff0c;一个是EventHandler ,另一个是WorkHandler. EventHandler可以彼此独立消费同一个队列中的任务&#xff0c;WorkHandler可以共同竞争消费同一个队列中的任务。也就是说&#xff0c;假设任务队列中有a、b、c、d三个事件&#xff0c;eventHa…...

单例设计模式双重检查的作用

先看双重校验锁的写法 public class Singleton {/*volatile 修饰&#xff0c;singleton new Singleton() 可以拆解为3步&#xff1a;1、分配对象内存(给singleton分配内存)2、调用构造器方法&#xff0c;执行初始化&#xff08;调用 Singleton 的构造函数来初始化成员变量&am…...

NGINX_十二 nginx 地址重写 rewrite

十二 nginx 地址重写 rewrite 1 什么是Rewrite Rewrite对称URL Rewrite&#xff0c;即URL重写&#xff0c;就是把传入Web的请求重定向到其他URL的过程。URL Rewrite最常见的应用是URL伪静态化&#xff0c;是将动态页面显示为静态页面方式的一种技术。比如 http://www.123.com…...

react用ECharts实现组织架构图

找到ECharts中路径图。 然后开始爆改。 <div id{org- name} style{{ width: 100%, height: 650, display: flex, justifyContent: center }}></div> // data的数据格式 interface ChartData {name: string;value: number;children: ChartData[]; } const treeDep…...

坚持刷题|合并有序链表

文章目录 题目思考代码实现迭代递归 扩展实现k个有序链表合并方法一方法二 PriorityQueue基本操作Java示例注意事项 Hello&#xff0c;大家好&#xff0c;我是阿月。坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;消失了一段时间&#xff0c;我又回来刷题啦&#xff0c;今天…...

SPI协议——对外部SPI Flash操作

目录 1. W25Q32JVSSIQ背景知识 1.1 64个可擦除块 1.2 1024个扇区&#xff08;每个块有16个扇区&#xff09; 1.3 页 1. W25Q32JVSSIQ背景知识 W25Q32JV阵列被组织成16,384个可编程页&#xff0c;每页有256字节。一次最多可以编程256个字节。页面可分为16组(4KB扇区清除&…...

kotlin类型检测与类型转换

一、is与!is操作符 1、使用 is 操作符或其否定形式 !is 在运行时检测对象是否符合给定类型。 fun main() {var a "1"if(a is String) {println("a是字符串类型:${a.length}")}// 或val b a is Stringprintln(b) } 二、"不安全的"转换操作符…...

【JDBC】Oracle数据库连接问题记录

Failed to load driver class oracle.jdbc.driver.OracleDriver in either of HikariConfig class oracle驱动包未正确加载&#xff0c;可以先尝试使用下面方式加载检查类是否存在&#xff0c;如果不存在需要手动下载odbc包 try {Class.forName("oracle.jdbc.driver.Ora…...

leetcode45 跳跃游戏II

题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1]…...

【数学】什么是方法矩估计?和最大似然估计是什么关系?

背景 方法矩估计&#xff08;Method of Moments Estimation&#xff09;和最大似然估计&#xff08;Maximum Likelihood Estimation, MLE&#xff09;是两种常用的参数估计方法。方法矩估计基于样本矩与总体矩的关系&#xff0c;通过样本数据计算样本矩来估计总体参数。最大似…...

C++初学者指南第一步---10.内存(基础)

C初学者指南第一步—10.内存&#xff08;基础&#xff09; 文章目录 C初学者指南第一步---10.内存&#xff08;基础&#xff09;1.内存模型1.1 纸上谈兵&#xff1a;C的抽象内存模型1.2 实践&#xff1a;内存的实际处理 2. 自动存储3.动态存储&#xff1a;std::vector3.1 动态内…...

AEB紧急制动系统与carsim及simulink联仿技术:卓越效果与性能的完美结合

紧急制动系统AEB&#xff0c;carsim与simulink联仿&#xff0c;效果极好 &#xff0c;踩下刹车的那一刻&#xff0c;方向盘突然传来剧烈震动。盯着屏幕里那辆虚拟的前车尾灯&#xff0c;我手心全是汗——这已经是今天第三次测试紧急制动了。Carsim里那台SUV正以60km/h的速度冲向…...

MATLAB图表美化指南:xlabel/ylabel上标下标的5种高级用法

MATLAB图表美化指南&#xff1a;xlabel/ylabel上标下标的5种高级用法 在数据可视化领域&#xff0c;MATLAB作为一款强大的科学计算软件&#xff0c;其图表绘制功能一直被科研人员和工程师广泛使用。然而&#xff0c;许多用户在基础绘图之外&#xff0c;往往忽略了坐标轴标签这一…...

用SUSE Linux+PHPStudy快速搭建FusionAccess测试环境(避坑指南)

用SUSE LinuxPHPStudy快速搭建FusionAccess测试环境&#xff08;避坑指南&#xff09; 在数字化转型浪潮中&#xff0c;桌面云技术正成为企业IT架构革新的关键推手。FusionAccess作为业界领先的虚拟桌面解决方案&#xff0c;其灵活性和高效性备受开发者青睐。然而&#xff0c;传…...

Gemma-3-270m量化压缩实战:4位精度模型部署

Gemma-3-270m量化压缩实战&#xff1a;4位精度模型部署 1. 开篇&#xff1a;小模型的大能量 最近在折腾边缘设备部署时&#xff0c;发现一个挺有意思的现象&#xff1a;很多团队还在用"大炮打蚊子"&#xff0c;明明只需要处理一些简单的文本分类任务&#xff0c;却…...

STM32F103引脚功能全解析:从供电到通信接口的实战配置指南

STM32F103引脚功能全解析&#xff1a;从供电到通信接口的实战配置指南 在嵌入式系统开发中&#xff0c;STM32F103系列微控制器因其出色的性能和丰富的外设资源&#xff0c;成为众多开发者的首选。这款基于ARM Cortex-M3内核的MCU&#xff0c;不仅具备72MHz的主频&#xff0c;还…...

LiuJuan Z-Image Generator参数详解:CFG Scale=2.0与12步生成高质量人像

LiuJuan Z-Image Generator参数详解&#xff1a;CFG Scale2.0与12步生成高质量人像 想用AI生成一张惊艳的人像照片&#xff0c;却发现要么细节模糊&#xff0c;要么风格怪异&#xff0c;怎么调参数都达不到理想效果&#xff1f;如果你也遇到过类似问题&#xff0c;那今天这篇文…...

HP-Socket技术债务管理成熟度提升计划:行动项与时间表

HP-Socket技术债务管理成熟度提升计划&#xff1a;行动项与时间表 【免费下载链接】HP-Socket High Performance TCP/UDP/HTTP Communication Component 项目地址: https://gitcode.com/gh_mirrors/hp/HP-Socket HP-Socket作为高性能TCP/UDP/HTTP通信组件&#xff0c;随…...

如何使用Rainmeter监控PCIe设备延迟:完整响应时间检测指南

如何使用Rainmeter监控PCIe设备延迟&#xff1a;完整响应时间检测指南 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter Rainmeter是一款强大的Windows桌面自定义工具&#xff0c;不仅能美化…...

Vision-Agents:构建下一代实时视觉AI代理的终极指南

Vision-Agents&#xff1a;构建下一代实时视觉AI代理的终极指南 【免费下载链接】Vision-Agents Open Vision Agents by Stream. Build Vision Agents quickly with any model or video provider. Uses Streams edge network for ultra-low latency. 项目地址: https://gitco…...

OpenClaw常用命令与在Windows下安装Tavily-Search

目录1. Windows安装Tavily-Search2. 启动与关闭2.1 正常流程2.2 故障处理3. 模型切换1. Windows安装Tavily-Search 确保目录位于C:\Users\用户名运行命令npx clawhub install openclaw-tavily-search在C:\Users\用户名\.openclaw创建文件.env用记事本打开.env&#xff0c;写入…...