Python字典详解:从入门到实践
Python字典详解:从入门到实践
字典(Dictionary)是Python中最重要且最常用的数据结构之一。本文将深入讲解字典的特性、操作方法和实际应用案例。
1. 字典简介
字典是可变的、无序的键值对集合,使用{}创建。每个元素由key: value组成,具有以下特点:
- 键(key)必须唯一且不可变(字符串、数字、元组)
- 值(value)可以是任意类型
- 查找速度快(基于哈希表实现)
# 创建字典
student = {"name": "Alice","age": 20,"courses": ["Math", "Physics"]
}
2. 基本操作
2.1 访问元素
print(student["name"]) # Alice
print(student.get("age")) # 20(推荐方式,避免KeyError)
2.2 添加/修改元素
student["email"] = "alice@example.com" # 添加新键值对
student["age"] = 21 # 修改已有值
2.3 删除元素
del student["courses"] # 删除指定键
age = student.pop("age") # 删除并返回值
3. 常用方法
3.1 遍历字典
# 遍历键
for key in student.keys():print(key)# 遍历键值对
for key, value in student.items():print(f"{key}: {value}")
3.2 合并字典
grades1 = {"Math": 90, "English": 85}
grades2 = {"Physics": 88, "Chemistry": 92}
grades1.update(grades2)
3.3 其他实用方法
# 获取所有键
keys = list(student.keys())# 设置默认值
scores = student.setdefault("scores", {})# 清空字典
student.clear()
4. 高级应用
4.1 字典推导式
squares = {x: x**2 for x in range(1, 6)}
# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
4.2 嵌套字典
employees = {1001: {"name": "John","department": "IT","projects": ["A", "B"]},1002: {"name": "Emma","department": "HR"}
}
5. 综合案例:学生管理系统
def student_management():students = {}while True:print("\n1. 添加学生\n2. 查询学生\n3. 删除学生\n4. 退出")choice = input("请选择操作:")if choice == "1":student_id = input("学号:")name = input("姓名:")students[student_id] = {"name": name}elif choice == "2":student_id = input("输入查询学号:")print(students.get(student_id, "学生不存在"))elif choice == "3":student_id = input("输入删除学号:")if student_id in students:del students[student_id]print("删除成功")else:print("学生不存在")elif choice == "4":breakstudent_management()
总结
字典作为Python的核心数据结构,具有以下优势:
- 快速查找(O(1)时间复杂度)
- 灵活的数据组织方式
- 支持复杂数据嵌套
- 丰富的内置方法
掌握字典的使用可以显著提升编程效率,建议通过实际项目多加练习!
相关文章:
Python字典详解:从入门到实践
Python字典详解:从入门到实践 字典(Dictionary)是Python中最重要且最常用的数据结构之一。本文将深入讲解字典的特性、操作方法和实际应用案例。 1. 字典简介 字典是可变的、无序的键值对集合,使用{}创建。每个元素由key: valu…...
91,【7】 攻防世界 web fileclude
进入靶场 <?php // 包含 flag.php 文件 include("flag.php");// 以高亮语法显示当前文件(即包含这段代码的 PHP 文件)的内容 // 方便查看当前代码结构和逻辑,常用于调试或给解题者提示代码信息 highlight_file(__FILE__);// 检…...
41【文件名的编码规则】
我们在学习的过程中,写出数据或读取数据时需要考虑编码类型 火山采用:UTF-16 易语言采用:GBK php采用:UTF-8 那么我们写出的文件名应该是何种编码的?比如火山程序向本地写出一个“测试.txt”,理论上这个“测…...
蓝桥杯备赛经验帖
蓝桥杯备赛经验帖 作者:blue 时间:2025.2.1 文章目录 蓝桥杯备赛经验帖1.为什么有这篇文章2.赛制3.比赛流程4.如何准备5.其他建议6.一些感悟 1.为什么有这篇文章 笔者近期发现,观看我写的两道第十五届蓝桥杯题解的人数逐渐增多…...
一文大白话讲清楚webpack基本使用——17——Tree Shaking
文章目录 一文大白话讲清楚webpack基本使用——17——Tree Shaking1. 建议按文章顺序从头看,一看到底,豁然开朗2. 啥叫Tree Shaking3. 什么是死代码,怎么来的3. Tree Shaking的流程3.1 标记3.2 利用Terser摇起来 4. 具体使用方式4.1 适用前提…...
【C++ 区间位运算】3209. 子数组按位与值为 K 的数目|2050
本文涉及知识点 位运算、状态压缩、枚举子集汇总 LeetCode3209. 子数组按位与值为 K 的数目 给你一个整数数组 nums 和一个整数 k ,请你返回 nums 中有多少个子数组 满足:子数组中所有元素按位 AND 的结果为 k 。 示例 1: 输入:…...
8 比例缩放(scale.rs)
scale.rs代码是几何变换库euclid中典型的数据结构和方法的例子,用于处理二维和三维空间中的缩放变换。 一、scale.rs文件源码 //! A type-checked scaling factor between units.use crate::num::One;use crate::approxord::{max, min}; use crate::{Box2D, Box3D…...
二分 机器人的跳跃问题
二段性:找到一个值,大于此值的时候都成立,小于的时候都不成立 更新的方式只有两种,左边的mid更新不需要1;右边的mid更新需要1 //对能量进行二分,确定能量的范围 //特判防止溢出int #include<bits/stdc.h> using…...
Hive:复杂数据类型之Map函数
Map函数 是Hive里面的一种复杂数据类型, 用于存储键值对集合。Map中的键和值可以是基础类型或复合类型,这使得Map在处理需要关联存储信息的数据时非常有用。 定义map时,需声明2个属性: key 和 value , map中是 key value 组成一个元素 key-value, key必须为原始类…...
R 字符串:深入理解与高效应用
R 字符串:深入理解与高效应用 引言 在R语言中,字符串是数据处理和编程中不可或缺的一部分。无论是数据清洗、数据转换还是数据分析,字符串的处理都是基础技能。本文将深入探讨R语言中的字符串概念,包括其基本操作、常见函数以及高效应用方法。 字符串基本概念 字符串定…...
设计模式Python版 桥接模式
文章目录 前言一、桥接模式二、桥接模式示例三、桥接模式与适配器模式的联用 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&…...
记5(一元逻辑回归+线性分类器+多元逻辑回归
目录 1、一元逻辑回归2、线性可分&线性不可分3、Iris数据集实现多元逻辑回归4、绘制分类图5、鸢尾花分类图6、多分类问题:(softmax回归)6.1、编码:自然顺序码、独热编码、独冷编码6.2、二/多分类问题:6.3、softmax…...
【Python】第七弹---Python基础进阶:深入字典操作与文件处理技巧
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】【Python】 目录 1、字典 1.1、字典是什么 1.2、创建字典 1.3、查找 key 1.4、新增/修改元素 1.5、删除元素 1.6、遍历…...
Nginx 运维开发高频面试题详解
一、基础核心问题 原文链接:https://blog.csdn.net/weixin_51146329/article/details/142963853 1、什么是Nginx? Nginx 是一个高性能的 HTTP 和反向代理服务器,它以轻量级和高并发处理能力而闻名。Nginx 的反向代理功能允许它作为前端服务…...
下载OpenJDK
由于Oracle需要付费,并且之前我在寻找openJDK的时候,我不知道网址,并且也不知道在这个openjdk这个网址里点击哪个模块进行下载。最近我在看虚拟机相关的书籍的时候,找到了相关的网址。 注意:下面的下载都是基于可以科…...
Web3.js详解
Web1&Web2&Web3 以下是Web1、Web2和Web3的详细介绍,以及一个对比表格: Web1 定义:Web1指的是有着固定内容的非许可的开源网络。特点:在Web1时代,网站内容主要由网站管理员或创建者提供,用户只能…...
学习串行通信
本文来源: [8-1] 串口通信_哔哩哔哩_bilibili 智谱清言 ------------ 串口(Serial Port): 串口是一种应用非常广泛的通讯接口,串口成本低,容易使用,通信线路简单,可实现两个设…...
【leetcode强化练习·二叉树】同时运用两种思维解题
本文参考labuladong算法笔记[【强化练习】同时运用两种思维解题 | labuladong 的算法笔记] 有的题目可以同时用「遍历」和「分解问题」两种思路来解,你可以利用这些题目训练自己的思维。 559. N 叉树的最大深度 | 力扣 | LeetCode | 给定一个 N 叉树,…...
Rank-analysis-1.2——一款基于LCU API的排位分析工具,大四学生独立开发
LOL Rank Record Analysis:一款基于LCU API的排位分析工具,大四学生独立开发! 大家好!我是河南科技学院的大四学生,今天给大家分享一个我自己开发的软件——LOL Rank Record Analysis。这是一个基于 Riot 提供的 LCU …...
什么是门控循环单元?
一、概念 门控循环单元(Gated Recurrent Unit,GRU)是一种改进的循环神经网络(RNN),由Cho等人在2014年提出。GRU是LSTM的简化版本,通过减少门的数量和简化结构,保留了LSTM的长时间依赖…...
从0到1落地智能仓储:C#上位机+Modbus RTU实现AGV集群调度与货物自动分拣
本文是纯实战、可直接落地的智能仓储完整方案,基于C# .NET 6 + Modbus RTU/Modbus TCP + AGV调度 + 自动分拣,从零搭建一套轻量级、低成本、高可靠的智能仓储系统,适用于电商仓库、工厂原料仓、成品仓、立体库。 无废话、无虚架构,代码可直接复制运行,适合新手从0到1上手智…...
一款实用汉化工具快速安装使用指南 -- cheat-engine中文版安装教程入口
文章目录安装方式安装后在哪里找到?(重点补全)使用说明温馨提示首先呢,大家可能在用 cheat engine (CE修改器)的时候呢,可能总是使用的是英文版,用的不太舒服啊,这个时候呢ÿ…...
镜像视界|AI智能体驱动的无感定位系统:从识别到控制的跃迁副标题:融合行为建模与轨迹预测的空间级目标管理体系
镜像视界|AI智能体驱动的无感定位系统:从识别到控制的跃迁——融合行为建模与轨迹预测的空间级目标管理体系一、范式升级:AI正在从“工具”进化为“智能体”在传统视频与AI系统中,人工智能的角色长期被定义为“工具”:…...
Godot资源解压器godotdec:从游戏资源保护到开发分析的技术实践
Godot资源解压器godotdec:从游戏资源保护到开发分析的技术实践 【免费下载链接】godotdec An unpacker for Godot Engine package files (.pck) 项目地址: https://gitcode.com/gh_mirrors/go/godotdec 在游戏开发与资源管理领域,Godot引擎的.pck…...
根据应用场景TongWeb版本选购指南
TongWeb7.0.4企业版TongWeb8.0/7.0.8企业版(主推)TongWeb7.0.E/8.0.E嵌入版TongHttpServer(THS)应用开发语言JavaEE应用JavaEE/JakartaEE应用JavaEE/JakartaEE应用PHP应用、vue前端应用说明:1. PHP应用直接推荐THS。2. .NET Core应用不需要中…...
ESP8266 EEPROM实战:手把手教你存WiFi密码,断电重启也不怕
ESP8266 EEPROM实战:构建可靠的WiFi凭证存储系统 每次重启ESP8266设备都要重新输入WiFi密码?这种重复劳动早就该被技术淘汰了。想象一下,你的智能家居设备在断电恢复后能自动重新连接网络,工业传感器在意外重启后依然保持通信——…...
Linux内核核心机制与开发实践详解
1. Linux内核概述与预备知识Linux内核作为操作系统的核心组件,承担着管理硬件资源、提供系统服务的关键角色。要深入理解Linux内核,需要具备以下基础知识储备:C语言能力:内核代码90%以上由C语言编写,需掌握指针操作、内…...
告别手动重启!用宝塔PM2管理器实现Node.js热更新(2023最新配置指南)
2023终极指南:用宝塔PM2打造Node.js热更新开发流水线 每次保存代码都要手动重启服务?还在为部署中断用户体验而头疼?作为经历过数百次深夜紧急部署的全栈开发者,我总结出一套零中断热更新方案。只需15分钟配置,让你的N…...
一文吃透Redis集群:架构、原理、搭建与实战优化
在分布式系统中,Redis作为高性能的键值存储中间件,单机部署早已无法满足高并发、大容量的业务需求——当数据量突破单机内存上限、QPS达到万级以上,单机Redis的单点故障、性能瓶颈会直接影响业务稳定性。此时,Redis集群࿰…...
从Google Drive下载文件的终极解决方案:gdrivedl实战指南
从Google Drive下载文件的终极解决方案:gdrivedl实战指南 【免费下载链接】gdrivedl Google Drive Download Python Script 项目地址: https://gitcode.com/gh_mirrors/gd/gdrivedl 你是否曾经遇到过这样的情况:需要从Google Drive下载一个大文件…...
