Python 中的嵌套字典

2024年8月29日 | 阅读 10 分钟

在 Python 编程语言中,我们有字典的概念。字典是可变的,我们可以轻松地向字典中添加和删除项。它是一个无序数据项的集合。

  • 字典包含两个部分,第一部分是数据集,第二部分是其对应的键值。
  • 它也不允许重复项。
  • 这里的嵌套字典指的是字典中的字典。
  • 简单来说,它指的是包含多个字典集合的字典。
  • 它用于以键值对的形式存储数据值。
  • 嵌套字典意味着将一个字典放在另一个字典中。嵌套非常有用,因为我们可以极大地扩展程序中可以建模的信息类型。
  • 嵌套字典包含各种字典的无序集合
  • 与普通字典相比,它也包含键和值对。
  • 我们可以使用键来访问字典。
  • 可以通过将用逗号分隔的字典括在花括号内来在 Python 中创建嵌套字典。
  • 无法对嵌套字典进行切片。
  • 我们可以根据需要收缩或扩展嵌套字典。

用于将各种字典添加到特定字典中的嵌套字典语法

可以通过多种方式向嵌套字典添加元素。一种在嵌套字典中添加字典的方法是逐个添加值,Nesteddict[dict][key] = 'value'。另一种方法是一次性添加整个字典,Nesteddict[dict] = { 'key': 'value'}。

嵌套字典示例

让我们通过一些例子来理解

示例 1

说明

在上面的示例中,我们创建了一个包含整数键值及其对应字符串值的字典。在这里,我们用班级学生的(带学号的)数据及其对应学生姓名来表示。接下来,我们将在该字典中执行嵌套操作。

以下程序的输出

Printing the dictionary that contains integer keys with their corresponding values
{1: 'Rina', 2: 'Gita', 3: 'Sita'}

示例 2

说明

我们创建了一个不包含任何键及其对应值的字典。接下来,我们将在该字典中执行嵌套操作。

以下程序的输出

Simple empty dictionary:
{ }

示例 3

说明

我们创建了一个嵌套字典,其中包含空数据集,或者一个不包含任何数据项及其对应键值的空字典。

以下程序的输出

Nested dictionary are as follows -
{'dict1': {}, 'dict2': {}, 'dict3': {}}

示例 4

说明

在上面的示例中,我们创建了一个包含字符串键值及其对应整数值的字典。在这里,我们用班级学生的(带有分数的)数据及其对应学生学号来表示。接下来,我们将在该字典中执行嵌套操作。

以下程序的输出

Printing the dictionary that contains string keys with their corresponding integer values
{'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}

示例 5

说明

我们创建了一个以对的形式包含数据项的字典。我们创建了一个成对项列表并将其制成字典。

以下程序的输出

Dictionary with each item as a pair: 
{1: 'silk', 2: 'one'}

示例 6

说明

我们创建了三个单独的字典,并将元素逐一分配给相应的键值。此字典包含整数键值及其对应的字符串值。尽管如此,我们还是单独创建了它,然后才添加这些字典。因此,我们可以执行字典中的加法操作。我们还将在该字典中执行嵌套操作。

以下程序的输出

Dictionary after adding 3 elements: 
{1: 'Java', 2: 'Tpoint', 3: 1}

示例 7

说明

我们创建了一个字典,其中包含整数键值及其对应的字符串值。在这里,我们执行了字典的更新和添加操作。我们还对其进行了一些更改,并将其转换为嵌套字典。

以下程序的输出

Dictionary after adding 3 elements: 
{'Name': 'JavaTpoint', 1: [11, 12, 13], 'Value': (5, 3, 6)}
Updated key value: 
{'Name': 'JavaTpoint', 1: [11, 12, 13], 'Value': (5, 3, 6), 2: 'JavaTpoint'}
Adding a Nested Key: 
{'Name': 'JavaTpoint', 1: [11, 12, 13], 'Value': (5, 3, 6), 2: 'JavaTpoint', 5: {'Nested': {'5': 'Java', '3': 'T'}}}

示例 8

说明

我们创建了一个嵌套字典,其中包含键值及其对应的值。在这里,我们使用了混合键的概念,其中键不相同。我们将扩展它,并创建一个具有相同键但值不同的嵌套字典。

以下程序的输出

Dictionary with the use of Mixed Keys: 
{'Name': 'JavaTpoint', 1: [11, 12, 13]}

示例 9

说明

在上面的示例中,我们创建了一个嵌套字典,其中包含键值及其对应的值;在这里,我们使用了相同键的概念,其中键是相同的,但对应的数据值是不同的。

以下程序的输出

Nested dictionary 2-
{'Dict1': {'Name': 'Reena', 'age': '22'}, 'Dict2': {'Name': 'Jatin', 'age': '19'}}

示例 10

说明

我们创建了一个嵌套字典,其中包含整数键值及其对应的字符串值。在这里,我们首先打印了嵌套字典和一个空嵌套字典。我们做了一些更改,并将嵌套字典放在空字典中。我们还添加了两个嵌套字典。

以下程序的输出

Nested dictionary 3-
{'Dict1': {1: 'J', 2: 'T', 3: 'P'}, 'Dict2': {'Name': 'JTP', 1: [1, 2]}}
Initial nested dictionary:-
{}
After adding dictionary Dict1
{'Dict1': {'name': 'Boby', 'age': 21}}

让我们看一个固定的例子,然后看一些变化,这样我们就可以很容易地理解它

示例 11

说明

在这里,我们创建了一个简单的嵌套字典;接下来,我们将进行一些更改。

以下程序的输出

{1: {'name': 'Shivam', 'age': '22', 'Id': 10023}, 2: {'name': 'Anjali', 'age': '20', 'Id': 10024}}

示例 12

说明

在这里,我们创建了一个嵌套字典,并使用 [ ] 语法从字典中访问元素。在这里,当您提供字典名称时,可以使用它,然后在方括号 [ ] 中是要获取的元素的位置,然后在那之外的额外方括号 [ ] 中提供您要获取的该特定元素的属性或键值。

以下程序的输出

Shivam
22
10023

示例 13

说明

在这里,我们创建了一个嵌套字典,并且我们想向该字典添加更多元素。这一切都是通过使用 [ ] 方括号语法完成的。首先,我们在字典的 3 号位置创建了一个空集,然后逐一填充数据;在这里,当您提供字典名称时,可以使用它,然后在方括号 [ ] 中是要添加元素的那个位置,然后在那之外的额外方括号 [ ] 中使用等号为该特定元素提供您要分配的属性或键值。

以下程序的输出

{'name': 'Tina', 'age': '19', 'Id': '10034'}

示例 14

说明

在这里,我们创建了一个嵌套字典,并且我们想向该字典添加更多元素。这一切都是通过使用 [ ] 方括号语法完成的。首先,我们在字典的 3 号位置创建了一个空集,然后逐一填充数据。

在这里,当您提供字典名称时,可以使用它,然后在方括号 [ ] 中是要添加元素的那个位置,然后在那之外的额外方括号 [ ] 中使用等号为该特定元素提供您要分配的属性或键值。

现在,要删除特定的元素,比如说嵌套字典中的学生 ID 3;我们必须在其中使用 ' del ' 关键字;通过使用它,我们可以轻松删除我们想要的特定值。

以下程序的输出

{'name': 'Tina', 'age': '19', 'Id': '10034'}
{'name': 'Tina', 'age': '19'}

示例 15

说明

在这里,我们创建了一个嵌套字典,并且我们想向该字典添加更多元素。这一切都是通过使用 [ ] 方括号语法完成的。首先,我们在字典的 3 号位置创建了一个空集,然后逐一填充数据;在这里,当您提供字典名称时,可以使用它,然后在方括号 [ ] 中是要添加元素的那个位置,然后在那之外的额外方括号 [ ] 中使用等号为该特定元素提供您要分配的属性或键值。

为了删除嵌套字典内的特定字典,我们使用了 ' del ' 关键字,并从学生嵌套字典中删除了学生 3 的整个字典。

以下程序的输出

{'name': 'Tina', 'age': '19', 'Id': '10034'}
{1: {'name': 'Shivam', 'age': '22', 'Id': 10053}, 2: {'name': 'Anjali', 'age': '20', 'Id': 10004}}