📜  Python|向字典添加新键

📅  最后修改于: 2022-05-13 01:54:45.456000             🧑  作者: Mango

Python|向字典添加新键

Python中的字典是数据值的无序集合,用于像地图一样存储数据值,与其他仅将单个值作为元素保存的数据类型不同,字典包含key:value对。

字典中提供了键值,使其更加优化。 Dictionary 中的每个键值对由冒号分隔: ,而每个键由“逗号”分隔。字典的键必须是唯一的并且是不可变的数据类型,例如字符串、整数和元组,但键值可以重复并且可以是任何类型。

让我们看看向字典添加新键的所有不同方式。

首先创建一个字典。

# Let's create a dictionary, the functional way
  
# Create your dictionary class
class my_dictionary(dict):
  
    # __init__ function
    def __init__(self):
        self = dict()
          
    # Function to add key:value
    def add(self, key, value):
        self[key] = value
  
# Main Function
dict_obj = my_dictionary()
  
dict_obj.add(1, 'Geeks')
dict_obj.add(2, 'forGeeks')
  
print(dict_obj)

输出:

{1: 'Geeks', 2: 'forGeeks'}

方法#1:使用下标符号

此方法将通过为该键分配一个值来在字典上创建一个新的键\值对。如果键不存在,它将被添加并指向该值。如果键存在,它指向的当前值将被覆盖。

dict = {'key1':'geeks', 'key2':'fill_me'}
print("Current Dict is: ", dict)
  
# using the subscript notation
# Dictionary_Name[New_Key_Name] = New_Key_Value
dict['key2'] = 'for'
dict['key3'] = 'geeks'
print("Updated Dict is: ", dict)

输出:

Current Dict is:  {'key1': 'geeks', 'key2': 'fill_me'}
Updated Dict is:  {'key3': 'geeks', 'key1': 'geeks', 'key2': 'for'}


方法 #2:使用update()方法

当我们必须更新/添加大量键/值到字典时, update()方法是合适的。

dict = {'key1':'geeks', 'key2':'for'}
print("Current Dict is: ", dict)
  
# adding key3
dict.update({'key3':'geeks'})
print("Updated Dict is: ", dict)
  
# adding dict1 (key4 and key5) to dict
dict1 = {'key4':'is', 'key5':'fabulous'}
dict.update(dict1)
print(dict)
  
# by assigning 
dict.update(newkey1 ='portal')
print(dict)

输出:

Current Dict is:  {'key2': 'for', 'key1': 'geeks'}
Updated Dict is:  {'key2': 'for', 'key3': 'geeks', 'key1': 'geeks'}

{'key4': 'is', 'key2': 'for', 'key5': 'fabulous', 'key3': 'geeks', 'key1': 'geeks'}

{'key3': 'geeks', 'newkey1': 'portal', 'key1': 'geeks',
        'key4': 'is', 'key2': 'for', 'key5': 'fabulous'}


方法 #3: __setitem__方法将键值对添加到 dict

应该避免使用__setitem__方法,因为它的性能很差(计算效率低下)。

dict = {'key1':'geeks', 'key2':'for'}
  
# using __setitem__ method
dict.__setitem__('newkey2', 'GEEK')
print(dict)

输出:

{'key2': 'for', 'newkey2': 'GEEK', 'key1': 'geeks'}


方法 #4:使用 *运算符

使用这种方法,我们可以将旧字典和新键/值对合并到另一个字典中。

dict = {'a': 1, 'b': 2}
  
# will create a new dictionary
new_dict = {**dict, **{'c': 3}}
  
print(dict)
print(new_dict)

输出:

{'b': 2, 'a': 1}
{'b': 2, 'c': 3, 'a': 1}