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

🌈 个人主页:十二月的猫-CSDN博客

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

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

目录

[1. 前言](#1. 前言)

[2. 字典](#2. 字典)

[2.1 字典的创建](#2.1 字典的创建)

[2.1.1 大括号+直接赋值](#2.1.1 大括号+直接赋值)

[2.1.2 大括号+字典推导式](#2.1.2 大括号+字典推导式)

[2.1.3 dict+关键字参数](#2.1.3 dict+关键字参数)

[2.1.4 dict+元组列表](#2.1.4 dict+元组列表)

[2.1.5 dict+zip方法](#2.1.5 dict+zip方法)

[2.1.6 dict+fromkeys方法](#2.1.6 dict+fromkeys方法)

[2.2 字典的访问](#2.2 字典的访问)

[2.2.1 使用键访问字典元素](#2.2.1 使用键访问字典元素)

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

[2.2.3 元组列表则用元组访问的方法访问](#2.2.3 元组列表则用元组访问的方法访问)

[2.3 字典的修改](#2.3 字典的修改)

[2.3.1 直接修改字典元素](#2.3.1 直接修改字典元素)

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

[2.3.3 删除字典元素](#2.3.3 删除字典元素)

[2.3.4 清空字典](#2.3.4 清空字典)

[2.4 字典方法](#2.4 字典方法)

[2.4.1 keys()](#2.4.1 keys())

[2.4.2 values()](#2.4.2 values())

[2.4.3 update()](#2.4.3 update())

[2.4.4 fromkeys()](#2.4.4 fromkeys())

[2.4.5 setdefault()](#2.4.5 setdefault())

[2.4.6 clear()](#2.4.6 clear())

[2.4.6 copy()](#2.4.6 copy())

[2.4.7 items()](#2.4.7 items())

[2.4.8 get()](#2.4.8 get())

[3. 完整示例](#3. 完整示例)

[4. 总结](#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. 总结

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

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

相关推荐
YuiGod几秒前
《从零开始DeepSeek R1搭建本地知识库问答系统》六:关于聊天模型 API Key 的使用与调用 Embedding 模型
python·langchain·deepseek
柳如烟@9 分钟前
docker python:latest镜像 允许ssh远程
python·docker·ssh
bryant_meng12 分钟前
【python】OpenCV—Hough Circle Transform
开发语言·python·opencv·hough·圆形检测
问道飞鱼16 分钟前
【云原生知识】如何搭建基于服务网关的分布式服务?
开发语言·云原生·istio·服务网格
宇寒风暖27 分钟前
一文弄懂编辑距离算法(Levenshtein Distance)示例,通过动态规划计算两个字符串之间的最小编辑操作次数(插入、删除、替换)
开发语言·数据结构·笔记·学习·算法·动态规划
chen丶229 分钟前
搭建基于flask的web应用框架
python·flask
EPSDA31 分钟前
介绍HTTP协议基本结构与Linux中基本实现HTTPServer
linux·运维·开发语言·c++·网络协议·tcp/ip·http
爱的叹息42 分钟前
分别用树型和UML结构展示java集合框架常见接口和类
java·开发语言·uml
涂瑷菡1 小时前
Bash语言的进程管理
开发语言·后端·golang
bossface1 小时前
Qt 控件概述 QWdiget
开发语言·qt