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. 内存占用较大

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

相关推荐
yeziyfx11 分钟前
kotlin中集合的用法
android·开发语言·kotlin
chao_78921 分钟前
二分查找篇——寻找旋转排序数组中的最小值【LeetCode】
python·线性代数·算法·leetcode·矩阵
金玉满堂@bj38 分钟前
PyCharm 中 Python 解释器的添加选项及作用
ide·python·pycharm
程序员三藏42 分钟前
如何使用Pytest进行测试?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
三体世界1 小时前
TCP传输控制层协议深入理解
linux·服务器·开发语言·网络·c++·网络协议·tcp/ip
随心点儿1 小时前
使用python 将多个docx文件合并为一个word
开发语言·python·多个word合并为一个
不学无术の码农1 小时前
《Effective Python》第十三章 测试与调试——使用 Mock 测试具有复杂依赖的代码
开发语言·python
tomcsdn311 小时前
SMTPman,smtp的端口号是多少全面解析配置
服务器·开发语言·php·smtp·邮件营销·域名邮箱·邮件服务器
sleepybear11131 小时前
在Ubuntu上从零开始编译并运行Home Assistant源码并集成HACS与小米开源的Ha Xiaomi Home
python·智能家居·小米·home assistant·米家·ha xiaomi home
EnigmaCoder2 小时前
Java多线程:核心技术与实战指南
java·开发语言