Python(六十五)字典的特点

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。

☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是对编程感兴趣的爱好者,都能从中受益。跟着我的学习笔记一起学习python吧。

🌙专栏目标:本专栏的目标是帮助我自己记忆、方便回顾所学知识以及帮助其他想学习python的小伙伴掌握Python编程语言的基本概念和技巧,并逐步提高我们的编程能力。通过这个专栏,我们将学会如何编写Python代码,理解各种数据类型、控制结构和函数,掌握常用的Python模块和库,以及应用Python解决实际问题。

⭐️ 专栏主要内容: 主要学习python的开发环境搭建;Python的基础知识,包括变量、数据类型、条件语句和循环等;python的数据结构和算法;python的函数和模块;python的文件处理等。

🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。

💑专栏主页:从零开始的Python入门之路

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

文章目录

    • [1. 键值对的形式](#1. 键值对的形式)
    • [2. 无序的元素](#2. 无序的元素)
    • [3. 键必须是不可变对象](#3. 键必须是不可变对象)
    • [4. 动态伸缩](#4. 动态伸缩)
    • [5. 内存占用较大](#5. 内存占用较大)

1. 键值对的形式

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

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

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

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

2. 无序的元素

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

python 复制代码
# 创建一个字典
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. 键必须是不可变对象

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

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

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

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

4. 动态伸缩

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

添加元素

python 复制代码
# 创建一个空字典
person = {}

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

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

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

修改元素

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

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

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

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

删除元素

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

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

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

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

5. 内存占用较大

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

相关推荐
晓纪同学44 分钟前
QT-简单视觉框架代码
开发语言·qt
威桑44 分钟前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服1 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生1 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生1 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb
Java Fans1 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手1 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
算法小白(真小白)1 小时前
低代码软件搭建自学第二天——构建拖拽功能
python·低代码·pyqt
唐小旭1 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
007php0071 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程