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

Python数据类型-dict

在这里插入图片描述

Python数据类型-dict

字典是Python中一种非常强大且常用的数据类型,它使用键-值对(key-value)的形式存储数据。

1. 字典的基本特性

  • 无序集合:字典中的元素没有顺序概念
  • 可变(mutable):可以动态添加、修改和删除元素
  • 键必须唯一且不可变:键可以是数字、字符串或元组等不可变类型
  • 值可以是任意类型:包括数字、字符串、列表、甚至其他字典

2. 创建字典

# 空字典
empty_dict = {}
empty_dict = dict()# 直接初始化
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 使用dict()构造函数
person = dict(name='Alice', age=25, city='New York')# 从键值对序列创建
person = dict([('name', 'Alice'), ('age', 25), ('city', 'New York')])

3. 访问字典元素

person = {'name': 'Alice', 'age': 25}# 通过键访问
print(person['name'])  # 输出: Alice# 使用get()方法(更安全,键不存在时返回None或默认值)
print(person.get('age'))  # 输出: 25
print(person.get('height'))  # 输出: None
print(person.get('height', 170))  # 输出: 170 (默认值)

4. 修改字典

person = {'name': 'Alice', 'age': 25}# 修改现有键的值
person['age'] = 26# 添加新键值对
person['city'] = 'New York'# 使用update()合并字典
person.update({'job': 'Engineer', 'salary': 80000})print(person)
# 输出: {'name': 'Alice', 'age': 26, 'city': 'New York', 'job': 'Engineer', 'salary': 80000}

5. 删除元素

person = {'name': 'Alice', 'age': 25, 'city': 'New York'}# del语句删除指定键
del person['age']# pop()删除并返回指定键的值
city = person.pop('city')# popitem()删除并返回最后添加的键值对(3.7+版本有序)
key, value = person.popitem()# 清空字典
person.clear()# 删除整个字典
del person

6. 字典常用方法

person = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 获取所有键
keys = person.keys()  # dict_keys(['name', 'age', 'city'])# 获取所有值
values = person.values()  # dict_values(['Alice', 25, 'New York'])# 获取所有键值对
items = person.items()  # dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])# 检查键是否存在
'name' in person  # True
'height' not in person  # True# 获取字典长度(键的数量)
len(person)  # 3# 复制字典
person_copy = person.copy()

7. 字典遍历

person = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 遍历键
for key in person:print(key)# 遍历键(显式)
for key in person.keys():print(key)# 遍历值
for value in person.values():print(value)# 遍历键值对
for key, value in person.items():print(f"{key}: {value}")

8. 字典推导式

# 创建平方字典
squares = {x: x*x for x in range(6)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}# 条件过滤
even_squares = {x: x*x for x in range(10) if x % 2 == 0}
# {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}# 键值反转
original = {'a': 1, 'b': 2, 'c': 3}
reversed_dict = {v: k for k, v in original.items()}
# {1: 'a', 2: 'b', 3: 'c'}

9. 嵌套字典

# 字典中可以包含其他字典
employees = {'Alice': {'age': 25,'job': 'Developer','skills': ['Python', 'Java']},'Bob': {'age': 30,'job': 'Manager','skills': ['Leadership', 'Project Management']}
}# 访问嵌套字典
print(employees['Alice']['age'])  # 25
print(employees['Bob']['skills'][0])  # Leadership

10. 字典与默认值

from collections import defaultdict# 普通字典处理不存在的键
counts = {}
for word in ['apple', 'banana', 'apple', 'orange']:if word in counts:counts[word] += 1else:counts[word] = 1# 使用defaultdict简化
counts = defaultdict(int)  # 默认值为0
for word in ['apple', 'banana', 'apple', 'orange']:counts[word] += 1

字典是Python中极其重要的数据结构,掌握字典的使用可以大大提高编程效率和代码可读性。

相关文章:

Python数据类型-dict

Python数据类型-dict 字典是Python中一种非常强大且常用的数据类型,它使用键-值对(key-value)的形式存储数据。 1. 字典的基本特性 无序集合:字典中的元素没有顺序概念可变(mutable):可以动态添加、修改和删除元素键必须唯一且不可变&…...

0301-组件基础-react-仿低代码平台项目

文章目录 1 组件基础2 组件props3 React开发者工具结语 1 组件基础 React中一切都是组件,组件是React的基础。 组件就是一个UI片段拥有独立的逻辑和显示组件可大可小,可嵌套 组件的价值和意义: 组件嵌套来组织UI结构,和HTML一…...

18-背景渐变与阴影(CSS3)

知识目标 理解背景渐变的概念和作用掌握背景渐变样式属性的语法与使用理解阴影效果的原理和应用场景掌握阴影样式属性的语法与使用 1. 背景渐变 1.1 线性渐变 运用CSS3中的“background-image:linear-gradient(参数值);”样式可以实现线性渐变效果。 …...

分享一个Drools规则引擎微服务Docker部署

通常我们都是把Drools作为嵌入式使用,但在微服务泛滥时代,还在老套的嵌入式显然不符合微服务架构要求,本文分享一个把Drools作为微服务独立部署的方案。 本方案基于Drools引擎微服务,提供REST接口。 1、可以动态部署Drools规则2…...

PHP开发者2025生存指南

PHP,这个曾经被戏称为“世界上最好的语言”的脚本语言,依旧在网络世界占据着重要的地位。然而,技术发展日新月异,面向2025年,PHP开发者要想保持竞争力甚至实现职业生涯的飞跃,需要不断学习和提升自身技能。…...

UE5学习记录part12

第15节: treasure 154 treasure: spawn pickups from breakables treasure是items的子类 基于c的treasure生成蓝图类 155 spawning actors: spawning treasure pickups 设置treasure的碰撞 蓝图实现 156 spawning actors from c : spawning our treas…...

鸿蒙开发03样式相关介绍(一)

文章目录 前言一、样式语法1.1 样式属性1.2 枚举值 二、样式单位三、图片资源3.1 本地资源3.2 内置资源3.3 媒体资源3.4 在线资源3.5 字体图标3.6 媒体资源 前言 ArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法&a…...

一周掌握Flutter开发--9. 与原生交互(上)

文章目录 9. 与原生交互核心场景9.1 调用平台功能:MethodChannel9.1.1 Flutter 端实现9.1.2 Android 端实现9.1.3 iOS 端实现9.1.4 使用场景 9.2 使用社区插件9.2.1 常用插件9.2.2 插件的优势 总结 9. 与原生交互 Flutter 提供了强大的跨平台开发能力,但…...

鸿蒙阔折叠Pura X外屏开发适配

首先看下鸿蒙中断点分类 内外屏开合规则 Pura X开合连续规则: 外屏切换到内屏,界面可以直接接续。内屏(锁屏或非锁屏状态)切换到外屏,默认都显示为锁屏的亮屏状态。用户解锁后:对于应用已适配外屏的情况下,应用界面可以接续到外屏。折叠外屏显示展开内屏显示折叠状态…...

小程序中跨页面组件共享数据的实现方法与对比

小程序中跨页面/组件共享数据的实现方法与对比 在小程序开发中,实现不同页面或组件之间的数据共享是常见需求。以下是几种主要实现方式的详细总结与对比分析: 一、常用数据共享方法 全局变量(getApp())、本地缓存(w…...

Java 大视界 -- 基于 Java 的大数据分布式计算在基因测序数据分析中的性能优化(161)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

go游戏后端开发21:处理nats消息

处理 NATS 订阅的消息 在 WebSocket 的管理模块中,我们之前已经处理了一些消息。这些消息通过 NATS 订阅过来,我们需要对这些消息进行进一步的处理。一旦消息到达,我们需要执行相应的操作,并将结果发送回去,包括之前的…...

4.1-python操作wrod/pdf 文件

1.读取word文件 首先安装软件包 pip3 install python-docx from docx import Documentimport os path os.path.join(os.getcwd(),你的文档名字.docx)# 加载文档 doc Document(path)# 遍历数据 for p in doc.paragraphs:print(p.text)# 遍历文档中所有表格 for t in doc.t…...

Android 应用程序包的 adb 命令

查看所有已安装应用的包名 命令:adb shell pm list packages说明:该命令会列出设备上所有已安装应用的包名。可以通过管道符|结合grep命令来过滤特定的包名,例如adb shell pm list packages | grep com.pm,这将只显示包名中包含co…...

DeepSeek-R1 模型现已在亚马逊云科技上提供

2025年3月10日更新—DeepSeek-R1现已作为完全托管的无服务器模型在Amazon Bedrock上提供。 2025年2月5日更新—DeepSeek-R1 Distill Llama 和 Qwen模型现已在Amazon Bedrock Marketplace和Amazon SageMaker JumpStart中提供。 在最近的Amazon re:Invent大会上,亚马…...

Python数据可视化-第2章-使用matplotlib绘制简单图表

环境 开发工具 VSCode库的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本书为《Python数据可视化》一书的配套内容,本章为第2章 使用matplotlib绘制简单图表 本文主要介绍了折线图、柱形图或堆积柱形图、条形图或堆积条形图、堆积面积图、直方图、饼图或…...

TDengine 快速上手:安装部署与基础 SQL 实践(二)

三、生产环境优化方案 3.1 性能调优策略 在生产环境中,TDengine 的性能优化是确保系统高效稳定运行的关键。以下是一些有效的性能调优策略。 连接池是提升数据库连接管理效率的重要工具,它允许应用程序重复使用现有的数据库连接,而不是每次…...

金融级密码管理器——密码泄露监控与自动熔断

目录 金融级密码管理器 —— 密码泄露监控与自动熔断一、模块概述与设计背景1.1 背景与挑战1.2 设计目标二、系统架构设计2.1 系统架构图(Mermaid示意图)三、关键技术与安全算法3.1 密码泄露监控3.2 自动熔断机制3.3 安全日志记录3.4 数据可视化与状态统计四、GUI与Dash仪表盘…...

mysql 主从搭建步骤

主库: 开启log-bin参数,log-bin 参数修改需要重启服务器 --You can change the server_id value dynamically by issuing a statement like this:SET GLOBAL server_id 2;--to enable binary logging using a log file name prefix of mysql-bin, and c…...

Redis 02

今天是2025/04/01 20:13 day 16 总路线请移步主页Java大纲相关文章 今天进行Redis 3,4,5 个模块的归纳 首先是Redis的相关内容概括的思维导图 3. 持久化机制(深度解析) 3.1 RDB(快照) 核心机制: 触发条件&#xff…...

unity UI管理器

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events;// UI界面基类 public abstract class UIBase : MonoBehaviour {[Header("UI Settings")]public bool keepInStack true; // 是否保留在界面栈中public …...

PyTorch深度学习框架60天进阶学习计划-第29天:自监督学习-问题解答(一)

PyTorch深度学习框架60天进阶学习计划-第29天:自监督学习-问题解答(一) 问题: 关于自监督的目标检测模型,怎么联动yolo。 一、 如何与YOLOv7联动? 步骤概述 确定自监督模块的接入位置 在YOLOv7的主干网络…...

GIT 撤销上次推送

注意:在执行下述操作之前先备份现有工作进度,如果不慎未保存,在代码编辑器中正在修改的文件下,使用CtrlZ 撤销试试 撤销推送的方法 情况 1:您刚刚推送到远程仓库 如果您的推送操作刚刚完成,并且没有其他…...

STRUCTBERT:将语言结构融入预训练以提升深度语言理解

【摘要】最近,预训练语言模型BERT(及其经过稳健优化的版本RoBERTa)在自然语言理解(NLU)领域引起了广泛关注,并在情感分类、自然语言推理、语义文本相似度和问答等各种NLU任务中达到了最先进的准确率。受到E…...

【万字总结】前端全方位性能优化指南(八)——Webpack 6调优、模块联邦升级、Tree Shaking突破

构建工具深度优化——从机械配置到智能工程革命 当Webpack配置项突破2000行、Node进程内存耗尽告警时,传统构建优化已触及工具链的物理极限:Babel转译耗时占比超60%、跨项目模块复用催生冗余构建、Tree Shaking误删关键代码引发线上事故……构建流程正从「工程问题」演变为「…...

单例模式(懒汉模式/饿汉模式)

相关概念参考&#xff1a;【C】C 单例模式总结&#xff08;5种单例实现方法&#xff09;_单例模式c实现-CSDN博客 #include<iostream>class LazySingle{ public:static LazySingle& getInstance(){static LazySingle instance;return instance;}void hello(){std::c…...

16-CSS3新增选择器

知识目标 掌握属性选择器的使用掌握关系选择器的使用掌握结构化伪类选择器的使用掌握伪元素选择器的使用 如何减少文档内class属性和id属性的定义&#xff0c;使文档变得更加简洁&#xff1f; 可以通过属性选择器、关系选择器、结构化伪类选择器、伪元素选择器。 1. 属性选择…...

C语言pthread库的线程休眠和唤醒的案例

一、代码如下 #include<stdio.h> #include<pthread.h> // 定义独占锁 pthread_mutex_t mutex; // 定义条件信号对象 pthread_cond_t condition; // 初始化函数 void init(){ int code pthread_mutex_init(&mutex, NULL); printf("共享锁初…...

Spring Boot 2.x 到 3.x 迁移实战:Redis 配置篇

前言 随着 Spring Boot 3.x 的发布&#xff0c;其对 Java 17 的支持和 模块化架构 的深化&#xff0c;Redis 配置与集成方式发生了显著变化。今天简单讲下redis的变化 一、Redis 配置前缀的模块化演进&#xff1a;从 spring.redis 到 spring.data.redis 1.1 Spring Boot 2.x&…...

SQL Server:用户权限

目录 创建 & 删除1. 创建用户命令整理创建 admin2 用户创建 admin_super 用户 2. 删除用户命令删除 admin2 用户删除 admin_super 用户 3. 创建时权限的区别admin2 用户权限admin_super 用户权限 查看方法一&#xff1a;使用对象资源管理器&#xff08;图形化界面&#xff…...