Python - AI 助手

Python collections.OrderedDict



在 Python 中,OrderedDict 是字典的一個子類,它記住插入的鍵的順序。OrderedDict()dict() 之間的唯一區別在於它們處理鍵順序的方式。

標準字典在迭代時不保證任何特定順序,而 OrderedDict 提供了將鍵新增到字典中的特定順序,並在迭代時保持相同的順序。

語法

以下是 Python OrderedDict() 類的語法:

collections.OrderedDict()

引數

它接受字典作為引數。

返回值

它返回有序字典。

示例

以下是 Python OrderedDict() 的基本示例:

# A Python program to demonstrate working of OrderedDict
from collections import OrderedDict
od = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3
od['d'] = 4

for key, value in od.items():
    print(key,":",value)

以下是上述程式碼的輸出:

a : 1
b : 2
c : 3
d : 4

OrderedDict 中的鍵值更改

我們可以更改鍵的值,但位置在 OrderedDict() 中保持不變。

示例

這裡,我們定義了一個 OrderedDict() 並更改了鍵值,但順序保持不變:

# A Python program to demonstrate working of key
# value change in OrderedDict
from collections import OrderedDict
od = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3
od['d'] = 4
print("The Original OrderedDict :",od)
od['c'] = 5
print("The OrderedDict after changing key value :",od)

以下是上述程式碼的輸出:

The Original OrderedDict : OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
The OrderedDict after changing key value : OrderedDict([('a', 1), ('b', 2), ('c', 5), ('d', 4)])

OrderedDict 中的相等性比較

我們可以使用 相等[==] 運算子比較兩個 OrderedDict()。此運算子檢查兩個 OrderedDict 的鍵和值是否相同。不僅檢查鍵和值,還檢查 OrderedDict() 中專案的順序。

示例

在以下示例中,我們比較了兩個 OrderedDict(),因為這兩個字典不相等,所以返回了 False

from collections import OrderedDict
# Create two ordered dictionaries with different orderings
od1 = OrderedDict([('one', 1), ('two', 2), ('three', 3)])
od2 = OrderedDict([('three', 3), ('two', 2), ('one', 1)])
# Compare the ordered dictionaries for equality
print("Comparison of the two OrderedDict :",od1 == od2)  

以下是上述程式碼的輸出:

Comparison of the two OrderedDict : False

move_to_end() 和 update() 的用法

我們可以使用 update() 方法更新 OrderedDict。使用 move_to_end(),我們可以將鍵移動到字典的末尾。它接受鍵和 last 引數。如果 last 為 True,則將鍵移動到字典的末尾,否則移動到字典的開頭。

示例

這裡,我們定義了 OrderedDict 並更新了兩個值,因為 lastFalse,所以鍵被移動到 OrderedDict() 的開頭:

from collections import OrderedDict
# Create an ordered dictionary of key-value pairs
my_dict = OrderedDict([('one', 1), ('two', 2)])
# Add a new item to the end of the dictionary
my_dict['four'] = 4
# Add a new item at a specific position in the dictionary
my_dict.update([('five', 5)])
my_dict.move_to_end('five', last=False)
print(my_dict)

以下是上述程式碼的輸出:

OrderedDict([('five', 5), ('one', 1), ('two', 2), ('four', 4)])
python_modules.htm
廣告