51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Python Dictionaries详解!

Python Dictionaries字典是一种用于以键值对的形式存储值的数据结构。这篇文章,我们来详细分析。

什么是Python字典? {#什么是Python字典?}

Python中的字典是一种用于以键值对的形式存储值的数据结构,这使得它与列表、元组和数组不同,因为在字典中每个键都有一个关联的值。

注意:从 Python 3.7 版本开始,字典是有序的,并且不能包含重复的键。

Python字典的语法:

|-----------|---------------------------------------------------------| | 1 | dict_var = {key1: value1, key2: value2, ......} |

如何创建字典? {#如何创建字典?}

通过{}创建 {#通过-创建}

在 Python 中,字典可以通过在花括号{}内放置一系列元素并用逗号分隔来创建。字典包含键值对,键和值可以是任何数据类型,值可以重复,而键不能重复且必须是不可变的。

注意:字典键是区分大小写的,相同名称但不同大小写的键将被视为不同的键。

如下示例代码:第一个字典使用整数键,第二个字典使用字符串和整数键的混合,展示了 Python 字典处理各种数据类型作为键的灵活性。

|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 | Dict = {1: 'Hello', 2: 'Python', 3: 'Dictionaries'} print("\n使用整数键的字典: ") print(Dict) Dict = {'Name': 'Hello', 1: [1, 2, 3, 4]} print("\n使用混合键的字典: ") print(Dict) |

输出:

|-------------------|-------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | 使用整数键的字典: {1: 'Hello', 2: 'Python', 3: 'Dictionaries'} 使用混合键的字典: {'Name': 'Hello', 1: [1, 2, 3, 4]} |

通过dict()创建 {#通过dict-创建}

字典也可以通过内置函数dict()创建。注意:一个空字典可以通过只放置花括号{}来创建。

如下示例:展示了如何使用dict()构造函数通过在花括号内指定键值对以及作为元组列表创建字典。

|---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 | dict1 = {} print("\n空字典: ") print(dict1) dict1 = dict({1: 'Hello', 2: 'Python'}) print("\n使用dict()创建的字典: ") print(dict1) dict1 = dict([(1, 'Hello'), (2, 'Python')]) print("\n每个项目作为一对的字典: ") print(dict1) |

输出:

|-------------------------|-------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 | 空字典: {} 使用dict()创建的字典: {1: 'Hello', 2: 'Python'} 每个项目作为一对的字典: {1: 'Hello', 2: 'Python'} |

创建嵌套字典 {#创建嵌套字典}

如下示例代码,定义了一个名为dict2的嵌套字典,包含多个层次的键值对。它包括一个顶级字典,键为1、2和3。键3关联的值是另一个字典,键为'A'、'B'和'C'。这展示了如何使用 Python 字典创建层次结构的数据结构。

|-------------|---------------------------------------------------------------------------------------------------| | 1 2 | dict2 = {1: 'Hello', 2: 'For', 3: {'A': 'Welcome', 'B': 'To', 'C': 'Python'}} print(Dict) |

输出:

|-----------|-------------------------------------------------------------------------------| | 1 | {1: 'Hello', 2: 'For', 3: {'A': 'Welcome', 'B': 'To', 'C': 'Python'}} |

创建字典的复杂性 {#创建字典的复杂性}

时间复杂度:O(len(dict))
空间复杂度:O(n)

向字典中添加元素 {#向字典中添加元素}

创建时添加元素 {#创建时添加元素}

可以通过多种方式向字典中添加元素。可以一次添加一个值,通过定义键和值,例如dict1[Key] = 'Value'

使用内置的update()方法 {#使用内置的update-方法}

使用内置的update()方法可以更新字典中现有的值。嵌套键值也可以添加到现有字典中。

注意:在添加值时,如果键值对已经存在,则值会被更新,否则将添加一个新的键值对。

如下示例代码:向 Python字典中添加不同数据类型的项目,该代码从一个空字典开始,然后向其中添加键值对,它展示了如何添加各种数据类型的元素,更新键的值,甚至将字典嵌套到主字典中。该代码展示了如何在Python中操作字典。

|---------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | dict1 = {} print("空字典: ") print(dict1) dict1[0] = 'Hello' dict1[2] = 'Python' dict1[3] = 1 print("\n添加3个元素后的字典: ") print(dict1) dict1['Value_set'] = 2, 3, 4 print("\n添加3个元素后的字典: ") print(dict1) dict1[2] = 'Welcome' print("\n更新键值: ") print(dict1) dict1[5] = {'Nested': {'1': 'Life', '2': 'Dictionaries'}} print("\n添加嵌套键: ") print(dict1) |

输出:

|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 空字典: {} 添加3个元素后的字典: {0: 'Hello', 2: 'Python', 3: 1} 添加3个元素后的字典: {0: 'Dictionaries', 2: 'For', 3: 1, 'Value_set': (2, 3, 4)} 更新键值: {0: 'Dictionaries', 2: 'Welcome', 3: 1, 'Value_set': (2, 3, 4)} 添加嵌套键: {0: 'Dictionaries', 2: 'Welcome', 3: 1, 'Value_set': (2, 3, 4), 5: {'Nested': {'1': 'Life', '2': 'Dictionaries'}}} |

添加元素到字典的复杂性 {#添加元素到字典的复杂性}

时间复杂度:O(1)/O(n)
空间复杂度:O(1)

访问字典的元素 {#访问字典的元素}

使用键访问 {#使用键访问}

该代码展示了如何使用键访问字典中的元素。它访问并打印与键'name'和1关联的值,展示了键可以是不同的数据类型(字符串和整数)。

|-------------------|-----------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | dict1 = {1: 'Hello', 'name': 'For', 3: 'Python'} print("使用键访问元素:") print(dict1['name']) print("使用键访问元素:") print(dict1[1]) |

输出:

|-----------------|--------------------------------------| | 1 2 3 4 | 使用键访问元素: For 使用键访问元素: Python |

使用get访问 {#使用get访问}

使用get()方法也可以帮助访问字典中的元素,该方法接受键作为参数并返回值。

如下示例代码,展示了如何使用get()方法访问字典元素。它检索并打印字典dict1中与键3 关联的值。该方法提供了一种安全的方法来访问字典值,避免在键不存在时抛出 KeyError。

|-----------------|---------------------------------------------------------------------------------------------------| | 1 2 3 4 | dict1 = {1: 'Hello', 'name': 'For', 3: 'Hello'} print("使用get()访问元素:") print(dict1.get(3)) |

输出:

|-------------|----------------------------| | 1 2 | 使用get()访问元素: Hello |

访问字典元素的复杂性 {#访问字典元素的复杂性}

时间复杂度:O(1)
空间复杂度:O(1)

使用索引[]访问嵌套字典的元素 {#使用索引-访问嵌套字典的元素}

要访问嵌套字典中任何键的值,请使用索引[]语法。

如下示例代码展示了如何处理嵌套字典。首先访问并打印与键'dict1'关联的整个嵌套字典。然后,通过嵌套字典导航访问并打印特定值。最后,检索并打印嵌套字典'dict2'中与键'Name'关联的值。

|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | dict0 = {'dict1': {1: 'Hello'},'dict2': {'Name': 'Python'}} print(dict0['dict1']) print(dict0['dict1'][1]) print(dict0['dict2']['Name']) |

输出:

|---------------|------------------------------------| | 1 2 3 | {1: 'Hello'} Python Python |

删除字典中的项目 {#删除字典中的项目}

使用'del'关键字删除元素 {#使用‘del’关键字删除元素}

可以使用del关键字删除字典中的项目,如下所示。

示例:该代码定义了一个字典,打印其原始内容,然后使用del语句删除与键1关联的元素。删除后,它打印更新后的字典,显示指定的元素已被移除。

|-----------------------|--------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 | dict1 = {1: 'Hello', 'name': 'For', 3: 'Python'} print("字典:") print(dict1) del(dict1[1]) print("删除后的字典:") print(dict1) |

输出:

|-----------------|-------------------------------------------------------------------------------------------| | 1 2 3 4 | 字典: {1: 'Hello', 'name': 'For', 3: 'Python'} 删除后的字典: {'name': 'For', 3: 'Python'} |

字典方法 {#字典方法}

以下是一些内置字典函数及其描述,你可以使用这些函数对字典进行操作。

| 方法 | 描述 | |--------------------------------------|--------------------------| | dict() | 用于创建一个新字典或将其他可迭代对象转换为字典。 | | dict.clear() | 移除字典中的所有元素 | | dict.copy() | 返回字典的副本 | | dict.get(key, default = "None") | 返回指定键的值 | | dict.items() | 返回一个包含字典中每个键值对的元组列表 | | dict.keys() | 返回一个包含字典所有键的列表 | | dict.update(dict2) | 使用指定的键值对更新字典 | | dict.values() | 返回字典所有值的列表 | | pop() | 移除指定键的元素 | | popItem() | 移除最后插入的键值对 | | dict.setdefault(key,default= "None") | 如果字典中没有指定的键,则将该键设置为默认值 | | dict.has_key(key) | 如果字典包含指定的键,则返回True |

Python中的多重字典操作 {#Python中的多重字典操作}

该代码以字典dict1开始,并创建其副本dict2。然后展示了几个字典操作:清空dict1,访问值,检索键值对和键,移除特定键值对,更新值以及检索值。这些操作展示了如何在Python中处理字典。

|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | dict1 = {1: "Python", 2: "Java", 3: "Ruby", 4: "Scala"} dict2 = dict1.copy() print(dict2) dict1.clear() print(dict1) print(dict2.get(1)) print(dict2.items()) print(dict2.keys()) dict2.pop(4) print(dict2) dict2.popitem() print(dict2) dict2.update({3: "Scala"}) print(dict2) print(dict2.values()) |

输出:

|---------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 | {1: 'Python', 2: 'Java', 3: 'Ruby', 4: 'Scala'} {} Python dict_items([(1, 'Python'), (2, 'Java'), (3, 'Ruby'), (4, 'Scala')]) dict_keys([1, 2, 3, 4]) {1: 'Python', 2: 'Java', 3: 'Ruby'} {1: 'Python', 2: 'Java'} {1: 'Python', 2: 'Java', 3: 'Scala'} dict_values(['Python', 'Java', 'Scala']) |

常见问题解答 {#常见问题解答}

如何在Python中使用字典? {#如何在Python中使用字典?}

Python中的字典用于存储键值对。它们是无序的、可变的,并且可以包含任何Python对象作为值。

|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 | # 创建一个字典 my_dict = {'key1': 'value1', 'key2': 'value2'} # 使用键访问值 print(my_dict['key1']) # 输出: value1 # 修改值 my_dict['key2'] = 'new_value' # 添加新的键值对 my_dict['key3'] = 'value3' # 移除一个键值对 del my_dict['key1'] |

如何在Python中打印字典? {#如何在Python中打印字典?}

你可以使用print()来显示字典的内容。你可以打印整个字典或通过访问键或值打印特定元素。

|-------------------|--------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | my_dict = {'name': 'Alice', 'age': 30} # 打印整个字典 print(my_dict) # 打印特定元素 print(my_dict['name']) # 输出: Alice |

如何在Python中声明一个字典? {#如何在Python中声明一个字典?}

你可以通过在花括号{}内包含键值对来声明一个字典。

|-----------------|-----------------------------------------------------------------------------------------| | 1 2 3 4 | # 空字典 empty_dict = {} # 具有初始值的字典 my_dict = {'key1': 'value1', 'key2': 'value2'} |

什么是Python中的字典键和值? {#什么是Python中的字典键和值?}

在字典中,键是用于访问值的唯一标识符。值是与这些键关联的数据。

|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 | my_dict = {'name': 'Alice', 'age': 30} # 访问键和值 print(my_dict.keys()) # 输出: dict_keys(['name', 'age']) print(my_dict.values()) # 输出: dict_values(['Alice', 30]) |

在字典中如何使用all()、any()、cmp()和sorted()? {#在字典中如何使用all-、any-、cmp-和sorted-?}

  • all()检查字典中的所有值是否都为True。
  • any()检查字典中的任何一个值是否为True。
  • cmp()(在Python 3中不再可用)用于比较两个字典。
  • sorted()返回字典中键的新排序列表。

|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 | my_dict = {'A': 10, 'B': 20, 'C': 0} print(all(my_dict.values())) # False (0的值为False) print(any(my_dict.values())) # True (至少有一个值为True) print(sorted(my_dict)) # ['A', 'B', 'C'] (排序后的键) |

总结 {#总结}

本文我们对 Python Dictionaries进行了详细的分析,Python字典是一种用于以键值对形式存储数据的强大数据结构。字典在Python 3.7及更高版本中是有序的,键必须是不可变且唯一的。字典可以通过花括号{}或dict()函数创建,并支持多种数据类型作为键和值。字典还支持嵌套结构,允许创建复杂的层次数据。

赞(2)
未经允许不得转载:工具盒子 » Python Dictionaries详解!