欢迎访问宙启技术站
智能推送

Python的字典函数使用介绍

发布时间:2023-06-13 20:20:58

Python是一种高级的、面向对象的程序设计语言,不仅拥有良好的程序设计能力,还具备了优秀的数据结构和函数库,其中字典函数是Python中最为重要的部分之一,它被广泛应用在Python编程中。

字典是Python中一种非常常用的数据结构,用于存储一系列的键值对,其中通过键来快速地查找和访问到该键对应的值。下面就详细地介绍一下Python字典函数的使用。

1、创建字典

在Python中,可以通过以下语句来创建一个空字典:

my_dict = {}

也可以使用赋值的方式建立有键值对的字典:

my_dict = {"key1" : "value1", "key2" : "value2"}

在创建字典时,Key不允许重复,而Value可以重复。

2、访问字典中的元素

可以使用字典的键来获取对应的值,例子如下:

my_dict = {"key1" : 10, "key2" : 20, "key3" : 30}
print(my_dict["key1"]) # 10
print(my_dict["key2"]) # 20

如果访问的键不存在,会抛出KeyError异常。

3、字典的常用操作

(1)字典的添加和修改元素,通过键来访问值,如果键存在则修改值,不存在则添加元素。

my_dict = {"key1" : 10, "key2" : 20}
my_dict["key1"] = 100 # 修改元素
my_dict["key3"] = 30 # 添加元素

(2)删除字典中的元素可以使用del语句,同时也可以使用pop()、popitem()等函数。

my_dict = {"key1" : 10, "key2" : 20, "key3" : 30}
del my_dict["key1"]
my_dict.pop("key2")
my_dict.popitem() # 随机删除字典中的一个元素,返回该元素

(3)可以使用keys()来返回字典中所有的键,使用values()来返回字典中所有的值,使用items()来返回字典中所有的键值对。其中keys()、values()、items()都返回一个可迭代的对象,可以使用for循环进行遍历。

my_dict = {"key1" : 10, "key2" : 20, "key3" : 30}
print(my_dict.keys()) # dict_keys(['key1', 'key2', 'key3'])
print(my_dict.values()) # dict_values([10, 20, 30])
print(my_dict.items()) # dict_items([('key1', 10), ('key2', 20), ('key3', 30)])

4、字典的迭代

可以通过for循环来遍历字典中所有的键值对,可以使用items()函数来进行遍历,如下所示:

my_dict = {"key1" : 10, "key2" : 20, "key3" : 30}
for key,value in my_dict.items():
    print(key,value)

5、字典的复制

(1)浅拷贝:可以使用copy()函数来实现浅拷贝。浅拷贝会创建一个新的字典,并将原字典中的数据复制到新字典中,如果原字典中的值为可更改的类型,则在新字典中修改该可变对象的值时,原字典中的相应值也会发生变化。

my_dict = {"key1" : [1,2], "key2" : 3}
new_dict = my_dict.copy()

new_dict["key1"][0] = 4
print(my_dict) # {'key1': [4, 2], 'key2': 3}
print(new_dict) # {'key1': [4, 2], 'key2': 3}

(2)深拷贝:深拷贝会将原字典中所有嵌套的可变类型对象完全复制到新字典中,不会发生引用关系,因此不会对原字典产生影响,可以使用copy模块中的deepcopy()函数来实现深拷贝。

import copy

my_dict = {"key1" : [1,2], "key2" : 3}
new_dict = copy.deepcopy(my_dict)

new_dict["key1"][0] = 4
print(my_dict) # {'key1': [1, 2], 'key2': 3}
print(new_dict) # {'key1': [4, 2], 'key2': 3}

上述为Python中字典函数的使用介绍,掌握字典函数的使用是Python编程的基础,能够帮助开发者更加高效地进行Python开发,也能够提高Python程序的运行效率。