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

发布于:2025-03-12 ⋅ 阅读:(18) ⋅ 点赞:(0)

🌈 个人主页:十二月的猫-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 大括号+直接赋值

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

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

2.1.2 大括号+字典推导式

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

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() 函数来创建字典,通过关键字参数来初始化:

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

2.1.4 dict+元组列表

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

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

2.1.5 dict+zip方法

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

示例一:

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

 示例二:

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

2.1.6 dict+fromkeys方法

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

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

2.2 字典的访问

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

2.2.1 使用键访问字典元素

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

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

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

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

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

# 使用 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 元组列表则用元组访问的方法访问

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

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 直接修改字典元素

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

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

# 修改现有的键值对
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() 可以删除字典中的键值对:

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

2.3.4 清空字典

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

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

2.4 字典方法

2.4.1 keys()

        返回字典中所有的键:

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

2.4.2 values()

        返回字典中所有的值:

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

2.4.3 update()

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

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()

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

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

2.4.5 setdefault()

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

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

2.4.6 clear()

        清空字典中的所有元素:

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

2.4.6 copy()

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

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

2.4.7 items()

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

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

2.4.8 get()

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

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

3. 完整示例

        下面是一个完整的 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编程的知识,大家可以点个关注并订阅,持续学习、天天进步你的点赞就是我更新的动力,如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~