在字典中添加元素並在Python中加入字典

商業

本節說明如何在字典中添加新元素(字典類型對象)或更新Python中現有元素的值。也可以串聯(連接,合併)多個字典。

  • 通過指定鍵在字典中添加和更新元素。
  • 多個字典的串聯(合併):update(),|運算符,| =運算符
  • 添加或更新多個元素:update(),| =運算符

通過指定鍵在字典中添加和更新元素。

您可以通過以下方式添加/更新字典元素。

字典對象[鍵] =值

指定不存在的鍵時,將添加新元素,而指定現有鍵時,將更新(覆蓋)現有值。

d = {'k1': 1, 'k2': 2}

d['k3'] = 3
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

d['k1'] = 100
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}

如果不想更新存在的鍵的值,請使用setdefault()方法。

連接(合併)多個詞典:update(),|運算符| | =運算符

update()

如果將另一個字典對象指定為字典對象的方法update()的參數,則將添加其所有元素。

如果鍵與現有鍵重疊,它將被參數中指定的字典值覆蓋。

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1.update(d2)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

在update()參數中指定多個詞典是錯誤的。

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

# d1.update(d2, d3)
# TypeError: update expected at most 1 arguments, got 2

如稍後所述,update()可以將新元素添加為關鍵字參數(key = value),因此只需在字典中添加**並將每個元素擴展為關鍵字參數並將其傳遞即可。

d1.update(**d2, **d3)
print(d1)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

與前面的示例一樣,使用update()將更新原始字典對象。

如果要通過合併多個詞典來生成新字典,請使用{** d1,** d2}(來自Python 3.5)或dict(** d1,** d2)。

在Python 3.9和更高版本中,還可以使用||創建一個新字典。運算符說明如下。

|運算符| | =運算符(Python 3.9及更高版本)

從Python 3.9開始,可以使用|合併兩個字典。操作員。當兩個字典具有相同的鍵時,右側的值具有優先權。

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

print(d1 | d2)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

print(d2 | d1)
# {'k1': 1, 'k3': 3, 'k4': 4, 'k2': 2}

|也可以通過使用一系列運算符來組合多個詞典。

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

print(d1 | d2 | d3)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

+與update()一樣,左側的對像也會更新。

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

添加或更新多個元素:update(),| =運算符

update()

在update()方法中指定關鍵字參數key = value時,將添加鍵和值。如果該鍵與現有鍵重疊,則會被參數中指定的值覆蓋。

d = {'k1': 1, 'k2': 2}

d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

也可以指定(key,value)的列表作為update()方法的參數。如果鍵與現有鍵重疊,則會被指定為參數的值覆蓋。

d = {'k1': 1, 'k2': 2}

d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

與zip()函數結合使用時,可以從鍵列表和值列表中添加元素。

d = {'k1': 1, 'k2': 2}

keys = ['k1', 'k3', 'k4']
values = [100, 3, 4]

d.update(zip(keys, values))
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

| =運算符(Python 3.9和更高版本)

使用| =運算符,可以在右側指定(鍵,值)列表。

d = {'k1': 1, 'k2': 2}

d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

請注意,用|指定列表。操作符將導致錯誤。僅支持字典到字典操作。

# print(d | [('k1', 100), ('k3', 3), ('k4', 4)])
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'
Copied title and URL