【Python入门】一篇掌握Python中的字典(创建、访问、修改、字典方法)【详细版】

devtools/2025/3/16 9:04:34/

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀《Python/PyTorch极简课》_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

1. 前言

2. 字典

2.1 字典的创建

2.1.1 大括号+直接赋值

2.1.2 大括号+字典推导式

2.1.3 dict+关键字参数

2.1.4 dict+元组列表

2.1.5 dict+zip方法

2.1.6 dict+fromkeys方法

2.2 字典的访问

2.2.1 使用键访问字典元素

2.2.2 使用 get() 方法访问字典元素

2.2.3 元组列表则用元组访问的方法访问

2.3 字典的修改

2.3.1 直接修改字典元素

2.3.2 使用 update() 方法修改字典

2.3.3 删除字典元素

2.3.4 清空字典

2.4 字典方法

2.4.1 keys()

2.4.2 values()

2.4.3 update()

2.4.4 fromkeys()

2.4.5 setdefault()

2.4.6 clear()

2.4.6 copy()

2.4.7 items()

2.4.8 get()

3. 完整示例

4. 总结


1. 前言

  • 👑《零基础入门PyTorch/Python》专栏持续更新中,未来最少文章数量为60篇。由于专栏刚刚建立,促销价为9.9。后续将慢慢恢复原价至99.9🍉【在校大学生】评论区留言并私信我免费订阅
  • 👑《零基础入门PyTorch/Python》专栏主要针对零基础入门的小伙伴。不需要Python基础,不需要深度学习基础,只要你愿意学,这一个专栏将真正让你做到零基础入门。
  • 🔥每例项目都包括理论讲解、数据集、源代码

正在更新中💹💹

🚨项目运行环境:

  • 平台:Window11
  • 语言环境:Python3.8
  • 运行环境1:PyCharm 2021.3
  • 运行环境2:Jupyter Notebook 7.3.2
  • 框架:PyTorch 2.5.1(CUDA11.8)

2. 字典

        (Dictionary)是一种内置的数据结构,以键值对(key-value pair)的形式存储数据。在许多Python或PyTorch中常常被使用,例如nn.Sequential等等。因此猫猫有必要写一篇文章,详细讲讲字典的生命全周期。

2.1 字典的创建

        字典创建的方法本质上就两种:大括号法dict方法

2.1.1 大括号+直接赋值

这是最常见和直接的方式,直接使用 {} 包裹键值对:

python">my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

2.1.2 大括号+字典推导式

字典推导式允许你根据某种条件或从其他可迭代对象创建字典:

python">my_dict = {x: x**2 for x in range(5)}
# 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

2.1.3 dict+关键字参数

你可以使用 dict() 函数来创建字典,通过关键字参数来初始化:

python">my_dict = dict(name='Alice', age=25, city='New York')

2.1.4 dict+元组列表

你可以使用 dict() 函数来创建字典,通过元组列表来初始化:

python">my_dict = dict([('name', 'Alice'), ('age', 25), ('city', 'New York')])

2.1.5 dict+zip方法

zip() 可以将两个可迭代对象组合成一个字典,前一个对象作为键,后一个对象作为值:

示例一:

python">keys = ['name', 'age', 'city']
values = ['Alice', 25, 'New York']
my_dict = dict(zip(keys, values))
# 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}

 示例二:

python">dic = dict(zip('abc', [1, 2, 3]))
print(dic)
# 输出结果:{'a': 1, 'b': 2, 'c': 3}

2.1.6 dict+fromkeys方法

通常用来初始化字典, 设置value的默认值

python">my_dict = dict.fromkeys(['name', 'age', 'city'], None)
# 输出: {'name': None, 'age': None, 'city': None}

2.2 字典的访问

        字典访问使用的是中括号([ ])

2.2.1 使用键访问字典元素

        通过字典的键来访问对应的值。如果键不存在,会抛出 KeyError 错误

python">my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 访问 'name' 键对应的值
print(my_dict['name'])  # 输出: Alice

利用[]中括号来访问键值对的值 

2.2.2 使用 get() 方法访问字典元素

        get() 方法可以通过键来访问字典的值。如果键不存在,它会返回 None,也可以指定一个默认值:

python"># 使用 get() 方法
print(my_dict.get('name'))  # 输出: Alice
# 使用 get() 方法访问不存在的键
print(my_dict.get('gender'))  # 输出: None
# 使用 get() 方法访问不存在的键并设置默认值
print(my_dict.get('gender', 'Not specified'))  # 输出: Not specified

2.2.3 元组列表则用元组访问的方法访问

        字典的输出有时候就是元组形式,因此访问字典可能也就是访问元组:

python">tuple_list = [(1, 'a'), (2, 'b'), (3, 'c')]
print(tuple_list[0])  # 输出: (1, 'a')
print(tuple_list[1])  # 输出: (2, 'b')
print(tuple_list[0][0])  # 输出: 1 (访问第一个元组中的第一个元素)
print(tuple_list[1][1])  # 输出: 'b' (访问第二个元组中的第二个元素)

2.3 字典的修改

2.3.1 直接修改字典元素

        你可以通过直接指定键来修改字典中的值。如果键不存在,会新增该键值对:

python">my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 修改 'age' 键对应的值
my_dict['age'] = 26
print(my_dict)  # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York'}# 如果键不存在,添加新的键值对
my_dict['gender'] = 'Female'
print(my_dict)  # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York', 'gender': 'Female'}

2.3.2 使用 update() 方法修改字典

        update() 方法可以用于修改字典中的元素。你可以传入一个字典或键值对(可以是一个可迭代对象,例如关键字参数元组列表):

python"># 修改现有的键值对
my_dict.update({'age': 27, 'city': 'Los Angeles'})
print(my_dict)  # 输出: {'name': 'Alice', 'age': 27, 'city': 'Los Angeles', 'gender': 'Female'}# 通过传入键值对的元组列表来修改或添加元素
my_dict.update([('age', 28), ('gender', 'Male')])
print(my_dict)  # 输出: {'name': 'Alice', 'age': 28, 'city': 'Los Angeles', 'gender': 'Male'}

2.3.3 删除字典元素

        使用 delpop() 可以删除字典中的键值对:

python"># 使用 del 删除键值对
del my_dict['city']
print(my_dict)  # 输出: {'name': 'Alice', 'age': 28, 'gender': 'Male', 'country': 'USA'}
python"># 使用 pop() 删除并返回值
removed_value = my_dict.pop('age')
print(removed_value)  # 输出: 28
print(my_dict)  # 输出: {'name': 'Alice', 'gender': 'Male', 'country': 'USA'}

2.3.4 清空字典

        clear() 方法可以清空字典中的所有键值对:

python"># 使用 clear() 清空字典
my_dict.clear()
print(my_dict)  # 输出: {}

2.4 字典方法

2.4.1 keys()

        返回字典中所有的键:

python">my_dict = {'a': 1, 'b': 2}
print(my_dict.keys())  # 输出: dict_keys(['a', 'b'])

2.4.2 values()

        返回字典中所有的值:

python">my_dict = {'a': 1, 'b': 2}
print(my_dict.values())  # 输出: dict_values([1, 2])

2.4.3 update()

        更新字典,可以传入另一个字典、键值对或可迭代的键值对序列。如果键已经存在,会更新值;如果键不存在,会添加新键值对

python">my_dict = {'a': 1, 'b': 2}
my_dict.update({'b': 3, 'c': 4})
print(my_dict)  # 输出: {'a': 1, 'b': 3, 'c': 4}

2.4.4 fromkeys()

        创建一个新字典,以指定的键创建字典,并为每个键设置默认值。可以传递一个可迭代对象作为键和一个可选的默认值:

python">keys = ['a', 'b', 'c']
new_dict = dict.fromkeys(keys, 0)
print(new_dict)  # 输出: {'a': 0, 'b': 0, 'c': 0}

2.4.5 setdefault()

        如果键不存在于字典中,则将其添加,并将值设置为提供的默认值。如果键已经存在,则不对该键做任何修改:

python">my_dict = {'a': 1, 'b': 2}
print(my_dict.setdefault('c', 3))  # 输出: 3
print(my_dict.setdefault('a', 3))  # 输出: 1

2.4.6 clear()

        清空字典中的所有元素:

python">my_dict = {'a': 1, 'b': 2}
my_dict.clear()
print(my_dict)  # 输出: {}

2.4.6 copy()

        返回字典的浅拷贝。拷贝后的字典不会影响原字典:

python">my_dict = {'a': 1, 'b': 2}
new_dict = my_dict.copy()
print(new_dict)  # 输出: {'a': 1, 'b': 2}

2.4.7 items()

        返回字典中所有键值对,以元组列表的形式返回。可以用于遍历字典:

python">my_dict = {'a': 1, 'b': 2}
print(my_dict.items())  # 输出: dict_items([('a', 1), ('b', 2)])

2.4.8 get()

        返回指定键的值,如果键不存在,返回 None(或指定的默认值):

python">my_dict = {'a': 1, 'b': 2}
print(my_dict.get('a'))  # 输出: 1
print(my_dict.get('c', 'Not Found'))  # 输出: 'Not Found'

3. 完整示例

        下面是一个完整的 Python 示例,展示了字典的创建、修改、访问以及使用一些常见的字典方法:

python"># 创建字典
student = {"name": "Alice",        # 键值对: "name" -> "Alice""age": 20,              # 键值对: "age" -> 20"courses": ["Math", "Science"],  # 键值对: "courses" -> ["Math", "Science"]
}# 访问字典的值
print("Name:", student["name"])  # 输出: Alice
print("Age:", student.get("age"))  # 输出: 20# 使用 get 方法访问一个不存在的键,提供默认值
print("Gender:", student.get("gender", "Not Specified"))  # 输出: Not Specified# 修改字典中的值
student["age"] = 21  # 修改 age 的值
print("Updated Age:", student["age"])  # 输出: 21# 向字典中添加新的键值对
student["address"] = "123 Main St"
print("Address:", student["address"])  # 输出: 123 Main St# 使用 update() 方法修改多个键值对
student.update({"name": "Bob", "age": 22})
print("Updated Name:", student["name"])  # 输出: Bob
print("Updated Age:", student["age"])  # 输出: 22# 使用 keys(), values(), items() 方法
print("Keys:", student.keys())  # 输出: dict_keys(['name', 'age', 'courses', 'address'])
print("Values:", student.values())  # 输出: dict_values(['Bob', 22, ['Math', 'Science'], '123 Main St'])
print("Items:", student.items())  # 输出: dict_items([('name', 'Bob'), ('age', 22), ('courses', ['Math', 'Science']), ('address', '123 Main St')])# 删除字典中的键值对
student.pop("address")  # 删除 "address" 键值对
print("After pop:", student)  # 输出: {'name': 'Bob', 'age': 22, 'courses': ['Math', 'Science']}# 使用 popitem() 删除并返回字典中的最后一个键值对
last_item = student.popitem()
print("Popped item:", last_item)  # 输出: ('courses', ['Math', 'Science'])# 清空字典
student.clear()
print("After clear:", student)  # 输出: {}# 使用 fromkeys 创建一个新字典
new_dict = dict.fromkeys(["a", "b", "c"], 0)
print("New Dictionary:", new_dict)  # 输出: {'a': 0, 'b': 0, 'c': 0}
  1. 字典创建:我们使用大括号 {} 来创建字典,并指定键值对。字典的键是唯一的,值可以是任何数据类型。
  2. 访问字典的值:我们通过 dict[key] 或 dict.get(key) 来访问字典中的值。get() 方法可以提供默认值以避免键不存在时报错。
  3. 修改字典的值:通过 dict[key] = value 可以修改字典中的值。
  4. 添加新的键值对:使用相同的方式通过键来添加新的键值对。
  5. 使用 update() 方法:可以批量更新字典中的多个键值对。
  6. 遍历字典:通过 keys() 获取所有的键,values() 获取所有的值,items() 获取所有的键值对。
  7. 删除字典元素:使用 pop() 删除指定的键值对,popitem() 删除并返回最后一个键值对。
  8. 清空字典clear() 方法会删除字典中的所有元素。
  9. 创建新字典fromkeys() 方法通过指定的键创建新字典,并可以为每个键指定一个默认值。

4. 总结

【如果想学习更多深度学习文章,可以订阅一下热门专栏】

  • 《Python/PyTorch极简课》_十二月的猫的博客-CSDN博客
  • 《深度学习理论直觉三十讲》_十二月的猫的博客-CSDN博客
  • 《小白读透AI原理》_十二月的猫的博客-CSDN博客

如果想要学习更多pyTorch/python编程的知识,大家可以点个关注并订阅,持续学习、天天进步你的点赞就是我更新的动力,如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~


http://www.ppmy.cn/devtools/167506.html

相关文章

Linux中的基本指令(下)

目录 mv指令 more指令 less指令 head指令 tail 指令 继续理解文件 重定向和追加重定向操作 理解管道 find指令 whereis 指令 bc指令 uname ‒r指令 grep 指令 关机 扩展命令 zip/unzip 指令 tar指令 关于rzsz 系统间的文件互传 接上! mv指令 m…

用Python实现一个简单的猜数字游戏

标题:用Python实现一个简单的猜数字游戏 摘要: 本文将介绍如何使用Python编写一个简单的猜数字游戏。通过这个项目,你将学习到Python的基本语法、随机数生成、循环和条件判断等基础知识。 正文: 1. 游戏介绍 猜数字游戏是一个…

[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信

基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信 一.Si24Ri原理图二.Si24R1芯片手册解读三.驱动函数讲解五.移植2.4g通讯(飞控部分)六.移植2.4g通讯(遥控部分) 一.Si24Ri原理图 Si24R1芯片原理图如下: 右侧为晶振。 模块…

一次Milvus迁移的记录

前言 希望把Linux上生产环境中使用docker compose运行的milvus迁移到本地(mac os)的docker compose中 操作过程 找到了官方有两个相关的项目: https://github.com/zilliztech/milvus-backup https://github.com/zilliztech/vts 但是…我都没用,因为使…

iOS应用程序开发(图片处理器)

续上篇 iOS 编程开发图片浏览器,继续实现一个图标生成功能。 功能。 操作系统平台:MacBook(macOS) IDE:xcode 编程语言:Objective-c 以下是小程序在 iPhone 模拟器中的运行视频。也可以在 iPad 模拟器中运行。 效果图如下所示&#xff1a…

2. qt写带有槽的登录界面(c++)

我们在1.Qt写简单的登录界面(c)_c qt 设计一个简单界面-CSDN博客中写了个简单的登录界面&#xff0c;但没有槽&#xff0c;在这里写一个带有槽的界面。 1.代码 代码目录如下&#xff1a; main.cpp的代码如下&#xff1a; #include "MainWindow.h" #include <Qt…

【SpringBoot】实现登录功能

在上一篇博客中&#xff0c;我们讲解了注册页面的实现。在此基础上会跳转到登录页面&#xff0c;今天给大家带来的是使用 SpringBoot&#xff0c;MyBatis&#xff0c;Html&#xff0c;CSS&#xff0c;JavaScript&#xff0c;前后端交互实现一个登录功能。 目录 一、效果 二、…

MySQL数据库知识总结

MySQL数据库知识总结 一、基本概念及其介绍二、数据库中的数据类型&#xff08;一&#xff09;数值类型&#xff08;二&#xff09;字符串类型&#xff08;三&#xff09;日期类型 三、数据库基础语法&#xff08;一&#xff09;数据库的常用操作&#xff08;二&#xff09;数据…