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

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):可以动态添加、修改和删除元素键必须唯一且不可变&…...

win10之mysql server 8.0.41安装

一 mysql server 下载 官网下载地址页面 https://dev.mysql.com/downloads/mysql/二 免装版使用步骤 1 解压 下载完成后,解压文件夹,如下所示: 2 执行安装命令 D:\soft\mysql\mysql-8.0.41-winx64\mysql-8.0.41-winx64\bin>mysqld --install Service successfully in…...

解决Oracle PL/SQL中“表或视图不存在“错误的完整指南

解决Oracle PL/SQL中"表或视图不存在"错误的完整指南 前言问题概述根本原因分析一、 编译时与运行时验证差异二、权限问题三、 Schema命名问题 实际案例演示案例1:动态分表查询案例2:权限不足的场景 实用排查步骤排查流程图最佳实践建议解决方…...

从实用的角度聊聊Linux下文本编辑器VIM

本文从实用的角度聊聊Vim的常用命令。何为实用?我举个不实用的例子大家就明白了,用vim写代码。;) “vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成…...

MySQL的进阶语法8(SQL优化——insert、主键、order by、group by、limit、count和update)

目录 一、插入数据 1.1 insert 1.2 大批量插入数据 二、主键优化 2.1 数据组织方式 2.2 页分裂 2.2.1 主键顺序插入效果 2.2.2 主键乱序插入效果 2.3 页合并 2.4 索引设计原则 三、order by优化 3.1 执行以下两条语句(无索引) 3.2 创建索引…...

STM32F103C8T6单片机硬核原理篇:讨论GPIO的基本原理篇章1——只讨论我们的GPIO简单输入和输出

目录 前言 输出时的GPIO控制部分 标准库是如何操作寄存器完成GPIO驱动的初始化的? 问题1:如何掌握GPIO的编程细节——跟寄存器如何打交道 问题2:哪些寄存器,去哪里找呢? 问题三,寄存器的含义&#xff…...

FreeRTOS源码下载分享

FreeRTOS源码下载分享 官网下载太慢了,分享下FreeRTOSv202411 FreeRTOSv202411.00.zip 链接: https://pan.baidu.com/s/1P4sVS5WroYEl0WTlPD7GXg 提取码: g6aq...

PyArrow 核心技术与应用:高效数据处理与跨生态集成实践

Apache Arrow 作为列式内存数据格式的行业标准,其 Python 接口 PyArrow 正在重塑数据科学生态。本文深入解析 PyArrow 的核心计算能力,涵盖统计函数、分组聚合、窗口操作及跨库集成,通过完整代码示例演示如何利用其高性能特性优化数据处理流程…...

机试题——PCB印刷电路板布线

题目描述 在 PCB 印刷电路板设计中,器件之间的连线需要避免线路的阻抗值增大,而且器件之间还可能存在其他干扰源。为了简化问题,我们将电路板简化为一个 ( M * N ) 的矩阵,每个位置(单元格)的值表示其源干…...

数据化管理(一)---什么是数据化管理

目录 一、什么是数据化管理1.1 “聪明”的销售人员1.2 数据化管理的概念1.3 数据化管理的意义1.4 数据化管理的四个层次1.4.1 业务指导管理1.4.2 营运指导管理1.4.3 经营策略管理1.4.4 战略规划管理 1.5 数据化管理流程图1.5.1 分析需求1.5.2 收集数据1.5.3 整理数据1.5.4 分析…...

Android 10.0 通过广播控制systemui状态栏动态显示和隐藏功能实现

1.前言 在10.0的系统rom定制化开发中,在某些特定的产品开发中,需要通过接口来控制系统状态栏的显示和隐藏, 所以就需要了解systemui状态栏的显示构造过程,然后通过相关接口来显示和隐藏状态栏,接下来就来 实现相关的功…...

Linux服务器安装MinerU

安装MinerU 为了确保项目的稳定性和可靠性,我们在开发过程中仅对特定的软硬件环境进行优化和测试。这样当用户在推荐的系统配置上部署和运行项目时,能够获得最佳的性能表现和最少的兼容性问题。 这里我们以基础的 [[Linux服务器部署PaddleX实战教程]] 使…...

深挖 DeepSeek 隐藏玩法·智能炼金术2.0版本

前引:屏幕前的你还在AI智能搜索框这样搜索吗?“这道题怎么写”“苹果为什么红”“怎么不被发现翘课” ,。看到此篇文章的小伙伴们!请准备好你的思维魔杖,开启【霍格沃茨模式】,看我如何更新秘密的【知识炼金…...

Vite 内联 CSS 和 JS 的解决方案

使用 vite-plugin-singlefile(推荐) 这个插件专门用于将整个 Vite 应用打包成单个 HTML 文件,内联所有 JS 和 CSS。 安装 pnpm i vite-plugin-singlefile -D配置 vite.config.js import { defineConfig } from vite import { viteSingleF…...

致敬生物信息学先驱:玛格丽特·戴霍夫(Margaret Dayhoff,1925-1983)

李升伟 编译 社论 发布于:2025年3月11日 《自然-计算科学》第五卷 第187页(2025年) 在玛格丽特戴霍夫(Margaret Dayhoff,1925-1983)百年诞辰之际,我们聚焦这位先驱在生物信息学领域留下的不朽…...

Knife4j文档请求异常 空指针

打开swagger文档报空指针异常 java.lang.NullPointerException: nullat springfox.documentation.oas.mappers.SchemaMapper.model(SchemaMapper.java:97)at springfox.documentation.oas.mappers.SchemaMapper.mapModel(SchemaMapper.java:85)at springfox.documentation.oas…...

笔记2——网络参考模型

一、OSI参考模型: 应用层: 报文 给应用程序提供接口 表示层: 进行数据格式的转换 会话层: 在通讯双方之间建立、管理和终止会话 传输层: 数据段;建立、维护、取消一次端到端的数据传输过程;控制…...

Spring AOP + Redis缓存设计实战:基于注解的优雅三防方案(击穿/穿透/雪崩)

文章目录 摘要 正文一、缓存设计的痛点与破局二、核心代码拆解:四层防御设计1. 注解驱动(ZywCacheable)2. 缓存击穿防护:双重检查锁3. 缓存穿透防护:空值标记4. 缓存雪崩防护:TTL随机算法 三、生产环境最佳…...

洛谷题单3-P5720 【深基4.例4】一尺之棰-python-流程图重构

题目描述 《庄子》中说到,“一尺之棰,日取其半,万世不竭”。第一天有一根长度为 a a a 的木棍,从第二天开始,每天都要将这根木棍锯掉一半(每次除 2 2 2,向下取整)。第几天的时候木…...

jdk21新特性详解使用总结

jdk21新特性详解总结 1.StringBuilder和StringBuffer新增了一个repeat方法 /*** Java 21的StringBuilder和StringBuffer新增了一个repeat方法*/public static void repeatStr(){var sbnew StringBuilder().repeat("*",10);System.out.println(sb);}运行结果如下&…...

解码 collections.Counter - 频率统计的利器

文章目录 前言一、什么是 collections.Counter?二、 基本用法:从创建到访问2.1 创建 Counter 对象2.2 访问计数三、 核心功能:更新与排序3.1 更新计数3.2 获取常见元素四、高级用法:数学运算与转换4.1 数学运算4.2 类型转换五、 实际应用:Counter 的威力5.1 词频统计5.2 在…...

Mysql基础笔记

# 1.SQL数据类型 可以去这篇文章看看: 最全 SQL 字段类型(4种)、属性(6种)总结:https://blog.csdn.net/weixin_45654582/article/details/119157403 ### 一.整数类型 ### 二.小数类型(2种) 1、浮点型:…...

HttpClient-03.入门案例-发送POST方式请求

一.发送POST方式请求 编写代码: 1.创建一个HttpClient对象 2.创建一个HttpGet请求 3.发送http的get请求并获得响应对象 4.通过发送GET请求获取的CloseableHttpResponse响应对象来获取状态码以及响应数据 package com.sky.test;import com.alibaba.fastjson.JS…...

Oracle数据库数据编程SQL<3.6 PL/SQL 包(Package)>

包是Oracle数据库中一种重要的PL/SQL程序结构,它将逻辑相关的变量、常量、游标、异常、过程和函数组织在一起,提供了更好的封装性和模块化。在大型项目中,可能有很多模块,而每一个模块又有自己的存过、函数等。而这些存过、函数默…...

每日一题---买卖股票的最好时机(一)、(二)

目录 买卖股票的最好时机(一) 一、题目链接:买卖股票的最好时机(一)_牛客题霸_牛客网 二、解题思路 三、代码实现 买卖股票的最好时机(二) 一、题目链接:买卖股票的最好时机(二)_牛客题霸_牛客网 ​编辑 二、解题思路 …...

XSS漏洞的分类解释和演示实验

XSS漏洞:跨站脚本攻击(cross site scripting),为了不和CSS混淆而改名。攻击者网web插入恶意script代码,当用户浏览页面时,嵌入的代码会被执行。 危害:盗取各类用户,强制发送电子邮件,网站挂马等…...

【Pandas】pandas DataFrame info

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于获取 DataFrame 的行索引DataFrame.columns用于获取 DataFrame 的列标签DataFrame.dtypes用于获取 DataFrame 中每一列的数据类型DataFrame.info([verbose, buf, max_cols, …])用于提供 Dat…...

JP1 Systemwalker 和 unirita的A-AUTO制品对比

以下是 JP1 SystemWalker(日立) 与 Unirita A-AUTO 的对比分析。两者均为日本企业开发的IT运维自动化工具,但在功能定位、技术架构和适用场景上存在显著差异: 1. 产品背景与市场定位 维度JP1 SystemWalkerUnirita A-AUTO开发商日…...

探索鸿蒙操作系统:迎接万物互联新时代

# 探索鸿蒙操作系统:迎接万物互联新时代 在科技飞速发展的当下,万物互联的时代浪潮正席卷而来。在这个全新的时代背景下,移动应用开发领域面临着前所未有的挑战,同时也迎来了诸多机遇。而鸿蒙操作系统(HarmonyOS&…...

NOIP2010提高组.引水入城

*前置题目 901. 滑雪 #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N 310, INF 0x3f3f3f3f; const int dx[4] {0, -1, 0, 1}, dy[4] {1, 0, -1, 0};int n, m, h[N][N]; int f[N][N]; int ans;int dfs(i…...

NLP高频面试题(二十九)——大模型解码常见参数解析

在大语言模型的实际应用中&#xff0c;如何更有效地控制文本生成的质量与多样性&#xff0c;一直是热门研究话题。其中&#xff0c;模型解码&#xff08;decode&#xff09;策略至关重要&#xff0c;涉及的主要参数包括 top_k、top_p 和 temperature 等。本文将详细介绍这些常见…...

【AI产品分享】面向图片的原始位置翻译功能

1. 背景 在撰写文字材料时&#xff0c;往往需要配套图像以增强表达效果。然而&#xff0c;有时自己绘制的图可能达不到理想的质量&#xff0c;而在其他文献材料中却能发现更清晰、直观的示例。希望在“站在巨人的肩膀上”优化自己的图像时&#xff0c;通常希望在保留原始图像的…...

为什么要为 REST API 添加认证

在不断发展的 Web 服务领域&#xff0c;REST API 在各种软件系统之间的通信中扮演着至关重要的角色。然而&#xff0c;强大的功能也伴随着巨大的责任。确保敏感数据的安全性和通信的可靠性是至关重要的。这时&#xff0c;认证就显得尤为重要。通过使用认证&#xff0c;我们可以…...

AI 数字人短视频数字人源码部署揭秘:开启虚拟内容创作新纪元​

在当下短视频盛行的时代&#xff0c;AI 数字人短视频以其独特的魅力吸引着大众的目光。虚拟偶像在舞台上活力四射&#xff0c;电商平台中数字人不知疲倦地推荐产品&#xff0c;这些令人瞩目的表现背后&#xff0c;源码的部署起着至关重要的作用。它如同幕后的神奇工匠&#xff…...

佳能imageRUNNER 2206N基本参数及管理员密码

基本参数&#xff1a; 产品类型 激光数码复合机 颜色类型 黑白 涵盖功能 复印/打印/扫描 速度类型 低速 最大原稿尺寸 A3 复印/打印方式 激光静电转印方式 感光材料 OPC 显影系统 干式单组分显影 定影…...

【Linux篇】探索进程地址空间:计算机背后的虚拟世界

进程地址空间的奥秘&#xff1a;让你理解程序如何在计算机中生存 一. 程序地址空间1.1 基本概念1.2 虚拟内存管理1.3 为什么存在虚拟地址空间1.3.1 意义 2. 最后 本文将介绍进程地址空间的基本概念与结构&#xff0c;帮助读者理解操作系统如何管理和分配内存。进程地址空间指的…...

Docker部署sprintboot后端项目

创建Docker网络 docker network create icjs 部署Redis docker run -d \--network icjs \--name redis \-p 6379:6379 \redis:latest数据持久化 docker run --restartalways --network icjs -p 6379:6379 --name redis -v /opt/docker/redis/redis.conf:/etc/redis/redis.c…...

1.4 基于模拟退火改进蛇算法优化VGG13SE网络超参数的故障诊断模型

本博客来源于CSDN机器鱼&#xff0c;未同意任何人转载。 更多内容&#xff0c;欢迎点击本专栏&#xff0c;查看更多内容。 目录 0 引言 1 改进原理 2 本文改进方法 3 改进蛇优化VGG13SE的故障诊断模型 4 结语 0 引言 在【博客】中&#xff0c;我们采用了蛇算法来对VGG1…...

Vue + Scss项目中实现自定义颜色主题的动态切换

当时面试的时候遇到面试官问的一个问题如何实现自定义颜色主题切换,当时我做的只是elementUIPlus提供的暗黑和默认主题切换​​​​​​​ theme.scss // 增加自定义主题类型 $themes: (light: (/* 原有配置保持不变 */),dark: (/* 原有配置保持不变 */),custom: () // 空映射…...

C#实现HiveQL建表语句中特殊数据类型的包裹

用C#实现搜索字符串中用’(‘和’)‘包裹的最外层的里面里面的字符串&#xff0c;将里面的记录按一个或多个空格、换行或tab&#xff0c;或者是它的在一起的组合作为分隔&#xff0c;分隔出多个字符串组&#xff0c;如果组中有字符串中同时包含’<‘和’>’&#xff0c;则…...

27 python 标准库概览

在办公室里,每个员工都有一套预装的办公软件:Word 处理文档、Excel 制作表格、Outlook 收发邮件... Python 的标准库就像公司预装的 "办公全家桶",包含 100 多个模块,覆盖文件操作、时间管理、数据分析等日常需求,无需额外安装即可直接使用。 一、文件管理 1.…...

whisper 语音识别的安装与使用

Whisper 是由OpenAI开发的开源自动语音识别&#xff08;ASR&#xff09;模型&#xff0c;不仅支持音频转录&#xff0c;还可以用于视频转录。通过调用ffmpeg处理视频&#xff0c;支持主流音视频格式的转录‌。 安装 安装ffmpeg&#xff1a;下载ffmpeg&#xff0c;Releases B…...

搜广推校招面经六十四

滴滴搜推算法 一、定义一个树结构、特征结构。写一个决策树对样本打分 逆天啊&#xff0c;上来就是暴击 import numpy as np class TreeNode:def __init__(self, feature_indexNone, thresholdNone, leftNone, rightNone, scoreNone):self.feature_index feature_index #…...

zabbix监控网站(nginx、redis、mysql)

目录 前提准备&#xff1a; zabbix-server主机配置&#xff1a; 1. 安装数据库 nginx主机配置&#xff1a; 1. 安装nginx redis主机配置&#xff1a; 1. 安装redis mysql主机配置&#xff1a; 1. 安装数据库 zabbix-server&#xff1a; 1. 安装zabbix 2. 编辑配置文…...

动态规划,如何应用动态规划解决实际问题?

一、动态规划核心概念 动态规划是一种分阶段解决问题的数学方法&#xff0c;它将复杂问题分解为更小的子问题&#xff0c;通过存储子问题的解来避免重复计算。 关键特征&#xff1a; ​最优子结构&#xff1a;问题的最优解包含子问题的最优解​重叠子问题&#xff1a;问题可…...

常见操作系统特点及区别对比

操作系统名称类型特点主要用途许可证类型内核类型Windows桌面/服务器图形界面友好&#xff0c;软件生态丰富&#xff0c;闭源个人电脑、企业办公专有商业许可混合内核macOS桌面 (Unix-like)高度优化的硬件整合&#xff0c;Unix基础&#xff0c;闭源创意设计、开发专有商业许可混…...

【资讯分享】为Apple Intelligence打造的有效屏障:“隐私保护气泡”

导读&#xff1a;苹果在WWDC大会上推出Apple Intelligence&#xff0c;主打个性化智能服务&#xff0c;深度整合iOS生态&#xff0c;支持跨App操作与内容感知。通过本地计算与私密云计算&#xff08;PCC&#xff09;技术实现端到端加密&#xff0c;确保数据匿名化处理与高透明度…...

AT_abc306_b [ABC306B] Base 2

题目描述 给定一个长度为64的序列A(A\_0,A\_1,\dots,A\_{63})A(A_0,A_1,…,A_63)&#xff0c;由0和1组成。 求A\_0 2^0 A\_1 2^1 \dots A\_{63} 2^{63}A_020A_121⋯A_63263。 约束条件 A\_iA_i是0或1。 输入 从标准输入中以以下格式给出输入&#xff1a; A_0A0​ A_1A…...

C++IO流类库

一、输入输出流(I/O strea) 编译系统已经以运算符或函数的形式做好了对标准外设&#xff08;键盘、屏幕、打印机、文件&#xff09;的接口&#xff0c;使用时只需按照要求的格式调用即可。 cin>>x; cout<<x; cin.get(ch); C语言的I/O系统向用户提供一个统一…...

常见的锁策略+synchronized(特性解释)

该篇文章主要是对常见的锁策略的总结&#xff08;主要的作用是扫盲&#xff09;&#xff0c;如想要了解其他部分&#xff0c;这部分可以不用看 目录 一、常见的锁策略1. 悲观锁vs乐观锁举例&#xff1a; 2. 重量级锁vs轻量级锁3. 挂起等待锁vs自旋锁举例 4.普通互斥锁vs读写锁…...