Python(六十五)字典的特点

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。
☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是对编程感兴趣的爱好者,都能从中受益。跟着我的学习笔记一起学习python吧。
🌙专栏目标:本专栏的目标是帮助我自己记忆、方便回顾所学知识以及帮助其他想学习python的小伙伴掌握Python编程语言的基本概念和技巧,并逐步提高我们的编程能力。通过这个专栏,我们将学会如何编写Python代码,理解各种数据类型、控制结构和函数,掌握常用的Python模块和库,以及应用Python解决实际问题。

⭐️ 专栏主要内容: 主要学习python的开发环境搭建;Python的基础知识,包括变量、数据类型、条件语句和循环等;python的数据结构和算法;python的函数和模块;python的文件处理等。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:从零开始的Python入门之路

在这里插入图片描述

Python字典是一种非常强大和常用的数据结构,它以键值对的形式存储数据,可以方便地进行数据的查找和操作。

文章目录

    • 1. 键值对的形式
    • 2. 无序的元素
    • 3. 键必须是不可变对象
    • 4. 动态伸缩
      • 添加元素
      • 修改元素
      • 删除元素
    • 5. 内存占用较大

1. 键值对的形式

Python字典以键值对的形式存储数据,每个键值对由一个键(key)和一个值(value)组成。键是唯一的,而值可以重复。这意味着我们可以通过键来快速查找和访问对应的值。下面是一个简单的示例:

# 创建一个字典
person = {'name': 'John', 'age': 30, 'city': 'New York'}

# 访问字典中的值
print(person['name'])  # 输出:John
print(person['age'])  # 输出:30
print(person['city'])  # 输出:New York

在上面的示例中,我们创建了一个名为person的字典,它包含了一个人的姓名、年龄和所在城市。通过键来访问字典中的值非常方便,只需要使用方括号([])将键括起来即可。

2. 无序的元素

字典中的元素是无序的,这意味着它们没有固定的顺序。当我们遍历字典时,元素的顺序是不确定的。这是因为字典的实现方式决定了元素的存储顺序不是按照插入顺序来的。下面是一个示例:

# 创建一个字典
person = {'name': 'John', 'age': 30, 'city': 'New York'}

# 遍历字典的键值对
for key, value in person.items():
    print(key, value)

运行上面的代码,我们可能得到类似以下的输出结果:

name John
age 30
city New York

可以看到,字典中的键值对被无序地遍历出来。这就是字典元素无序的特点。

3. 键必须是不可变对象

在字典中,键必须是不可变对象,这意味着它们不能被修改。常见的不可变对象包括整数、浮点数、字符串和元组。而列表和字典等可变对象则不能作为键。这是因为字典使用键来计算哈希值,从而快速查找对应的值。如果键是可变的,那么在修改键的值后,它的哈希值也会发生变化,导致无法准确地定位对应的值。下面是一个示例:

# 创建一个字典,使用字符串作为键
person = {'name': 'John', 'age': 30, 'city': 'New York'}

# 创建一个字典,使用列表作为键(会引发TypeError异常)
person = {['name']: 'John', 'age': 30, 'city': 'New York'}

在上面的示例中,我们尝试使用列表作为键来创建字典,但会引发TypeError异常,提示我们不可使用可变对象作为键。

4. 动态伸缩

Python字典是一种动态伸缩的数据结构,可以根据需要随时添加、修改或删除元素。这使得字典非常适合存储和操作动态数据。下面是一些示例代码:

添加元素

# 创建一个空字典
person = {}

# 添加键值对
person['name'] = 'John'
person['age'] = 30
person['city'] = 'New York'

print(person)  # 输出:{'name': 'John', 'age': 30, 'city': 'New York'}

在上面的示例中,我们首先创建了一个空字典person,然后通过赋值的方式逐步添加了键值对。最后,我们打印出字典的内容,可以看到所有的键值对都被成功添加到了字典中。

修改元素

# 创建一个字典
person = {'name': 'John', 'age': 30, 'city': 'New York'}

# 修改值
person['age'] = 35

print(person)  # 输出:{'name': 'John', 'age': 35, 'city': 'New York'}

在上面的示例中,我们通过键来访问字典中的值,并将其修改为新的值。修改字典中的值非常简单,只需要使用赋值操作即可。

删除元素

# 创建一个字典
person = {'name': 'John', 'age': 30, 'city': 'New York'}

# 删除键值对
del person['age']

print(person)  # 输出:{'name': 'John', 'city': 'New York'}

在上面的示例中,我们使用del关键字来删除字典中的键值对。这里我们删除了键为age的键值对。

5. 内存占用较大

由于字典存储了键值对的关系,它需要占用较大的内存空间。这是因为字典使用哈希表来实现,哈希表需要维护键和值之间的映射关系,以及处理冲突等操作。相比于其他数据结构,如列表和元组,字典在存储相同数量的元素时占用的内存空间更大。因此,在使用字典时需要注意内存的消耗。

  • Python官方文档:字典
  • Python字典教程

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【更新】119所院校考研重点勾画更新预告!

截至目前,我已经发布了47篇不同院校的择校分析。发布了87套名校信号考研真题以及119所不同院校的考研知识点重点勾画。 另外为了更好服务已经报名的同学,24梦马全程班也到了收尾的阶段。即将封班!需要报名的同学抓紧啦! 去年开始…

机器人开发--兴颂雷达介绍

机器人开发--兴颂雷达介绍 1 介绍2 使用手册参考 1 介绍 佛山市兴颂机器人科技有限公司(Hinson)是一家集研发、设计、生产、销售机器人(AGV)导航核心零部件、并提供整体运动控制方案的自主创新型国家高新技术企业。 2 使用手册 兴颂激光雷达使…

skywalking全链路追踪

文章目录 一、介绍二、全链路追踪1. 测试1 - 正常请求2. 测试2 - 异常请求 三、过滤非业务请求链路1. 链路忽略插件2. 配置3. 测试 一、介绍 在上一篇文章skywalking安装教程中我们介绍了skywalking的作用以及如何将其集成到我们的微服务项目中。本篇文章我们介绍在微服务架构…

PostMan调用gitlab接口,OAuth 2.0 身份认证 API ,copy完事~

获取token接口: https://gitlab.***.com/oauth/token ,接下来就可以调用其他功能的接口了 例:创建账户,将获取到的access_token放置在接口请求的token中 其他接口调用同上

ChatGPT辅助写论文:提升效率与创造力的利器

写作是人类最重要的交流方式之一,也是学术研究中不可或缺的环节。然而,写作并不是一件容易的事情,尤其是对于科研人员来说,他们需要花费大量的时间和精力来撰写高质量的论文,并且面临着各种各样的挑战,如语…

环境温度变化对DC电源模块稳定性的影响

环境温度变化对DC电源模块稳定性的影响 BOSHIDA DC电源模块是一种将交流电输入转化为稳定直流电输出的设备,其输出电压稳定性是非常重要的指标之一。在使用过程中,环境温度的变化可能会对其稳定性造成影响,因此需要对其进行充分的了解。 首先…

用Log4j 2记录日志

说明 maven工程中增加对Log4j 2的依赖 下面代码示例的maven工程中的pom.xml文件中需要增加对Log4j 2的依赖&#xff1a; <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.20.0&…

SQL92 SQL99 语法 Oracle 、SQL Server 、MySQL 多表连接、Natural 、USING

SQL92 VS SQL 99 语法 92语法 内连接 from table1&#xff0c; table2 where table1.col table2.col 外连接 放在 从表 左连接&#xff1a; from table1&#xff0c; table2 where table1.col table2.col() 右连接&#xff1a; from table1&#xff0c; table2 where table…

分布式协议与算法——拜占庭将军问题

拜占庭将军问题 背景&#xff1a;以战国时期为背景 战国时期&#xff0c;齐、楚、燕、韩、赵、魏、秦七雄并立&#xff0c;后来秦国的势力不断强大起来&#xff0c;成了东方六国的共同威胁。于是&#xff0c;这六个国家决定联合&#xff0c;全力抗秦&#xff0c;免得被秦国各个…

18. SpringBoot 如何在 POM 中引入本地 JAR 包

❤️ 个人主页&#xff1a;水滴技术 &#x1f338; 订阅专栏&#xff1a;成功解决 BUG 合集 &#x1f680; 支持水滴&#xff1a;点赞&#x1f44d; 收藏⭐ 留言&#x1f4ac; Spring Boot 是一种基于 Spring 框架的轻量级应用程序开发框架&#xff0c;它提供了快速开发应用程…

el-table那些事

el-table那些事 获取el-table所有勾选的行数据 用于记录工作和日常学习遇到的坑&#xff0c;需求。 vue3element-plusts 获取el-table所有勾选的行数据 1、需要先声明一个ref变量&#xff0c;并赋值给el-table 2、通过el-table提供的getSelectionRows()函数获取选中的"行…

uni-app:分页实现多选功能

效果 代码解析 一、标签-列表 <view class"item_all" v-for"(item, index) in info" :key"index"><view class"position parameter-info text-over" :class"{checked_parameter: item.checked}" :data-id"i…

gradio创建机器学习的好工具 基本使用和示例

1.gradio介绍 Gradio: 用Python构建机器学习网页APP Gradio是一个开源的Python库,用于构建演示机器学习或数据科学,以及web应用程序。 使用Gradio,您可以基于您的机器学习模型或数据科学工作流快速创建一个漂亮的用户界面,让用户可以”尝试“拖放他们自己的图像、粘贴文本…

HTML5(H5)的前生今世

目录 概述HTML5与其他HTML的区别CSS3与其他CSS版本的区别总结 概述 HTML5是一种用于构建和呈现网页的最新标准。它是HTML&#xff08;超文本标记语言&#xff09;的第五个版本&#xff0c;于2014年由万维网联盟&#xff08;W3C&#xff09;正式推出。HTML5的前身可以追溯到互联…

java实现钉钉群机器人@机器人获取信息后,机器人回复(机器人接收消息)

1.需求 鉴于需要使用钉钉群机器人回复&#xff0c;人们提出的问题&#xff0c;需要识别提出的问题中的关键词&#xff0c;后端进行处理实现对应的业务逻辑 2.实现方式 用户群机器人&#xff0c;附带提出的问题&#xff0c;后端接收消息后识别消息内容&#xff0c;读取到关键…

无人机机巢有哪些,无人机机场/机场的主要分类

随着无人机技术的飞速发展&#xff0c;无人机已经渗透到了物流、农业、救援、公共安全等多个领域。而为了使这些无人机能更加高效、灵活地运行&#xff0c;一个新的概念应运而生&#xff0c;那就是无人机机巢&#xff08;UAV Nest&#xff09;。复亚智能无人机机巢是一种供无人…

MIT 6.824 -- MapReduce -- 01

MIT 6.824 -- MapReduce -- 01 引言抽象和实现可扩展性可用性(容错性)一致性MapReduceMap函数和Reduce函数疑问 课程b站视频地址: MIT 6.824 Distributed Systems Spring 2020 分布式系统 推荐伴读读物: 极客时间 – 大数据经典论文解读DDIA – 数据密集型应用大数据相关论文…

RabbitMQ(一) - 基本结构、SpringBoot整合RabbitMQ、工作队列、发布订阅、直接、主题交换机模式

RabbitMQ结构 Publisher &#xff1a; 生产者 Queue: 存储消息的容器队列&#xff1b; Consumer:消费者 Connection&#xff1a;消费者与消息服务的TCP连接 Channel:信道&#xff0c;是TCP里面的虚拟连接。例如&#xff1a;电缆相当于TCP&#xff0c;信道是一条独立光纤束&…

【JavaEE】Spring Boot - 项目的创建和使用

【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09; 文章目录 【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09;1. Spring Boot 的优点2. Spring Boot 项目创建2.1 下载安装插件2.2 创建项目过程2.3 加载项目2.4 启动项目2.5 删除一些没用的文件 3. Sp…

python 连接oracle pandas以简化excel的编写和数据操作

python代码 Author: liukai 2810248865qq.com Date: 2022-08-18 04:28:52 LastEditors: liukai 2810248865qq.com LastEditTime: 2023-07-06 22:12:56 FilePath: \PythonProject02\pandas以简化excel的编写和数据操作.py Description: 这是默认设置,请设置customMade, 打开koro…