Python程序:向字典添加元素


Python 是一种高级通用编程语言,非常受欢迎。Python 用于各种尖端软件开发项目,例如 Web 开发和机器学习应用程序。

在本文中,我们将学习向字典添加元素的各种方法。

你对Python中的字典有什么理解?

Python 中的字典存储键值对,这与其他只包含单个值作为元素的数据类型不同。它用于像映射一样存储数据值。字典包含键值对,使其更高效。

在字典中,每个键值对由冒号分隔;相反,每个键由逗号分隔。字典的键值可以重复,可以是任何类型,但键值必须是不同的,并且是不可变的数据类型,例如字符串、整数和元组。

语法

Key:value

首先让我们学习如何创建一个字典:

我们可以通过多种方式创建字典,例如函数式方法,你首先创建字典类,然后定义_init_函数。众所周知,字典包含键值对,接下来我们将编写一个函数来添加键值对,最后是主函数。

但这里我们将创建一个简单的字典。

示例

下面的示例演示了如何在 Python 中创建字典。

# Let's create a dictionary here
create_dictionary = {'Name': 'Devang', 'Age': 24, 'Quality': 'Hardworking'}
print(create_dictionary)

输出

{'Name': 'Devang', 'Age': 24, 'Quality': 'Hardworking'}

到目前为止,我们已经弄清楚了基础知识。现在让我们将这些基础知识应用于向字典中添加元素。有几种方法可以做到这一点,但这里我们将了解四种最简单且最重要的方法。

使用 update() 方法

此方法用于从可迭代的键值对或不同字典对象的元素更新字典。此方法很合适,因为它在需要添加多个键值对时可以简化任务。

语法

dict.update([other])

示例

在下面的程序中,创建了一个名为 dict 的字典,其中包含两个键值对。然后程序打印出字典的初始版本。下一行向字典添加另一个键值对并更新它。之后,创建一个名为“dictionary_A”的新字典,其中包含另外两个键值对,然后使用 .update() 方法将其添加到 dict 中,并在最后一步打印出来。

dict = {'1': 'An', '2': 'Apple a day'}
print( "First Dictionary is as following :", dict)

# for adding the key3 that is an another key
dict.update({'3': 'keeps doctor'})
print( "Updated version of Dictionary is as following : ", dict)

# for adding from dictionary_A (key4 and key5) to dict
dictionary_A = {'4': 'is', '5': 'away'}
dict.update(dictionary_A)
print(dict)

输出

First Dictionary is as following : {'1': 'An', '2': 'Apple a day'}
Updated version of Dictionary is as following : {'1': 'An', '2': 'Apple a day', '3': 'keeps doctor'}
{'1': 'An', '2': 'Apple a day', '3': 'keeps doctor', '4': 'is', '5': 'away'}

使用 For 循环和 enumerate() 方法

Python 提供了一个内置函数,即enumerate()方法。它的作用是向可迭代对象添加计数器,并以枚举对象的形成返回。

算法

首先创建一个元素列表,然后使用 enumerate() 方法迭代列表。接下来,使用索引作为每个值的键将每个元素添加到字典中。

示例

程序中创建了一个字典和一个列表。然后,for 循环遍历第二个列表中的每个项目,并将其分配给第一个列表中的一个键,其对应的索引作为键值。print 语句打印出for循环修改后的第一个列表的最终版本。

firstlist = {"Apple": 1, "Boy": 2, "Cat": 3}
secondlist = ["first: 1", "second:2", "third:3"]
for i, val in enumerate(secondlist):
   firstlist[i] = val
print(firstlist)

输出

{'Apple': 1, 'Boy': 2, 'Cat': 3, 0 : 'first : 1', 1 : 'second : 2', 2 : 'third : 3'}

使用 Zip 方法

当使用容器或可迭代对象时,Python 中的 zip() 函数创建一个包含来自每个容器的映射值的单个迭代器对象。它用于映射多个容器的共享索引,以便单个实体可以访问所有这些容器。可以使用现有的字典代替 dictionary{}。

示例

下面的程序正在创建一个包含三个键 (1, 2, 3) 和值 ("Ship", "for", "sale") 的字典,然后它打印出生成的字典。

dictionary = {}
keys_num = ['1', '2', '3']
values_first = ['Ship', 'for', 'sale']
for keys_num, value_first in zip(keys_num, values_first):
   dictionary[keys_num] = value_first
print(dictionary)

输出

{‘1’: ‘Ship’, ‘2’: ‘for’, ‘3’: ‘sale’}

使用“in”运算符和 If 语句

在这种方法中,我们使用了if语句,该语句检查键是否已存在于字典中。如果键不存在,则将其添加到字典中;如果评估后发现键已存在,则输出结果为键已存在于字典中。

示例

下面的程序正在创建一个名为“firstdictionary”的字典,其键为“apple”、“boy”和“cat”。然后它检查键“dog”是否存在于firstdictionary中。如果不存在,则它将键值对 (“dog”: 4) 添加到字典中。否则,它会打印出一条消息,说明该键已存在于字典中,并且其值不会被覆盖。最后,它打印出 firstdictionary 的所有内容。

firstdictionary = {"apple": 1, "boy": 2, "cat": 3}
if "dog" not in firstdictionary:
   firstdictionary["dog"] = "4"
else:
   print("Key is already present in the dictionary : One. Hence value is not overwritten ")
print(firstdictionary)

输出

{'apple': 1, 'boy': 2, 'cat': 3, 'dog': '4'}

示例

在这里,我们使用示例创建了一个差异,如果键不存在则显示case1,否则显示case2。

firstdictionary = {"apple": 1, "boy": 2, "cat": 3, "dog": 4}
if "dog" not in firstdictionary:
   firstdictionary["dog"] = "4"
else:
   print("Key is already present in the dictionary : One. Hence value is not overwritten ")
print(firstdictionary)

输出

Key is already present in the dictionary : One. Hence value is not overwritten {'apple': 1, 'boy': 2, 'cat': 3, 'dog': 4}

使用 ** 运算符

在这种方法中,我们可以使用 ** 运算符直接合并两个字典,即旧字典和新字典的键值对。因此,** 运算符的作用是将键值对解包到新的字典对象中。

算法

创建一个字典,然后创建另一个字典,我们想将其合并到原始字典中。然后在键值对前面应用 ** 运算符。

示例

还有一种 _setitem_ 方法可以向字典添加元素,但它是一种计算效率低下的方法,因此我们通常不使用此方法。

firstdictionary = {'apple': 1, 'boy': 2}
new_dictionary = {**firstdictionary, **{'cat': 3}}
print(firstdictionary)
print(new_dictionary)

输出

{'apple': 1, 'boy': 2}
{'apple': 1, 'boy': 2, 'cat': 3}

结论

在本文中,我们解释了五种不同的方法,这五种方法展示了五种不同的方法来完成相同的任务,即使用 Python 向字典添加元素。

更新于:2023年4月24日

浏览量:121

启动您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.