如何在 Python 中獲取字典中的下一個鍵?


字典是 Python 中強大的資料型別。它由鍵值對組成。可以透過這種資料型別高效地執行搜尋、追加等操作。雖然訪問字典中的值非常簡單,但在某些情況下,您可能需要查詢字典中的下一個鍵。Python 提供了幾種方法來實現這一點,具體取決於您的特定需求。在本文中,我們將探討在 Python 中獲取字典中下一個鍵的不同方法。

使用 keys 和 index 方法

字典在 Python 中是無序集合。因此,我們首先需要將鍵轉換為某種有序形式。我們可以首先將所有鍵追加到列表中。接下來,我們可以索引列表以查詢存在的下一個鍵。藉助鍵,我們還可以訪問相應的鍵值。

語法

<dictionary name>.keys()

keys 方法是 Python 的內建方法,用於返回字典中的鍵。它返回一個檢視物件,我們可以使用 Python 的 list 方法將其轉換為列表。檢視物件是動態的;因此,任何字典更改也將反映在檢視物件中。

<iterable object>.index(<name of the key>, start, end)

在 Python 中,“index”方法是內建方法。它可以應用於可迭代序列。它接受一個必要的引數,即我們需要在可迭代序列中查詢其索引的值。此外,它還接受兩個可選引數,start 和 end,以定義我們需要查詢元素的範圍。它返回一個整數,表示元素在可迭代序列中的第一次出現。

示例

在以下程式碼中,我們首先建立了名為 my_dict 的字典。我們將當前鍵定義為“banana”。在這種情況下,我們的目標是找到下一個鍵,“orange”。我們使用了字典的 keys 方法來獲取所有字典鍵。接下來,我們使用 index 方法訪問當前鍵的索引。我們提供了一個條件語句,在其中我們列印了索引比當前鍵大一的鍵。

my_dict = {'apple': 1, 'banana': 2, 'orange': 3, 'kiwi': 4}
current_key = 'banana'
keys = list(my_dict.keys())
current_index = keys.index(current_key)
print("The next element to banana is: ", end="")
if current_index < len(keys) - 1:
    next_key = keys[current_index + 1]
    print(next_key)  
else:
    print("No next key found.")

輸出

The next element to banana is − orange

使用 OrderedDict 模組

獲取字典中下一個鍵的另一種方法是使用 collections 模組中的 Ordered Dict 類。Ordered Dict 允許我們建立字典並遍歷專案。但是,與傳統字典相比,使用此模組時字典的表示方式完全不同。專案以元組的形式獲取。

語法

OrderedDict([(key1, value1), (key2, value2), (key3, value3), other key-value pairs.....])

“Ordered Dict”是 Python 的“collections 模組”提供的有序字典的類名。我們需要將所有鍵值對作為元組物件傳遞,並且元組物件之間用逗號分隔。我們可以有多個元組物件,並且此字典物件是可迭代的。

示例

在此程式碼中,我們首先從 Python 的 collections 庫中匯入了 Ordered Dict 模組。接下來,我們定義字典。請注意,鍵值對用逗號分隔並用元組括起來。接下來,我們將變數 found_current_key 的標誌設定為 false。我們遍歷字典並更新 next_key 變數的值。此變數包含我們所需的結果。請注意,我們使用了 Ordered Dict;因此,字典現在是可迭代的。

from collections import OrderedDict
my_dict = OrderedDict([('apple', 1), ('banana', 2), ('orange', 3), ('kiwi', 4)])
current_key = 'orange'
next_key = None
found_current_key = False
print("The next element to banana is: ", end="")
for key in my_dict:
    if found_current_key:
        next_key = key
        break
    if key == current_key:
        found_current_key = True
print(next_key)  

輸出

The next element to banana is: kiwi

使用 keys() 方法和標誌

如果您不需要維護鍵的順序,則一種簡單的方法是使用字典的 keys() 方法和一個標誌變數來跟蹤當前鍵。其思想是遍歷字典鍵,如果找到當前鍵,則更新下一個鍵的值。請注意,如果我們使用 Python 的 keys 方法,我們將獲得所有鍵的列表形式。列表是可迭代的,因此我們可以執行此迭代。

示例

在以下程式碼中,我們建立了字典並將 current_key 的值設定為“apple”。接下來,我們將 next_key 變數的值設定為 False。我們遍歷字典的鍵。我們使用了一個條件語句。條件語句檢查 found_current_key 標誌是否為真,如果為真,則將當前鍵分配給 next_key,並中斷迴圈。如果當前鍵等於 current_key,則 found_current_key 標誌為真。

my_dict = {'apple': 1, 'banana': 2, 'orange': 3, 'kiwi': 4}
current_key = 'apple'
next_key = None
found_current_key = False
print("The next element to banana is: ", end="")
for key in my_dict.keys():
    if found_current_key:
        next_key = key
        break
    if key == current_key:
        found_current_key = True
print(next_key) 

輸出

The next element to banana is: banana

結論

在本文中,我們瞭解瞭如何在 Python 中獲取字典中的下一個鍵。我們可以利用列表或元組的可迭代屬性來收集所有字典鍵並找到可用的下一個鍵。Python 還為我們提供了 Ordered Dict 模組,我們可以使用它輕鬆地遍歷字典項。該模組使我們能夠建立可迭代字典。最後,我們可以利用鍵和標誌來實現相同的功能。

更新於: 2023-07-28

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.