Python 中的ordereddct

OrderedDict 是 Python 中 Dict 對象的子類。字典和ordereddct的區別在於 ordereddct 本身保持插入的鍵的順序,而在字典中,鍵的順序不是重要的部分。

OrderedDict 是標準的庫類。它位於collections模塊中。

為了使用它,用戶必須導入 collections 標準庫模塊。

示例:


import collections

在本文中,我們將討論 ordereddct 上的一些操作,以及 Dict 與 ordereddct 有何不同。

用戶可以在 Dict 類和 OrderedDict 類中放入一些鍵和很多帶有值的鍵。在下面的例子中,我們將展示 Dict 類的順序是如何變化的,但是對於 OrderedDict 類,它將保持不變。

示例:


import collections
# we will first create normal dict
print('Dict:')
user_dict = {}
user_dict['PP'] = 10
user_dict['QQ'] = 20
user_dict['RR'] = 30
user_dict['SS'] = 40
user_dict['TT'] = 50
user_dict['UU'] = 60
for item in user_dict.items():
   print(item)
print()
# now, we will create ordered dict
print('OrderedDict:')
user_ordered_dict = collections.OrderedDict()
user_ordered_dict['PP'] = 10
user_ordered_dict['QQ'] = 20
user_ordered_dict['RR'] = 30
user_ordered_dict['SS'] = 40
user_ordered_dict['TT'] = 50
user_ordered_dict['UU'] = 60
for item in user_ordered_dict.items():
   print(item)

輸出:

Dict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)

OrderedDict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)

更改特定鍵的值

對於ordereddct類,改變特定鍵的值後,鍵的順序不會改變,但是在 Dict 類中,順序可以改變,也可以不改變。

示例:


import collections
# we will first create normal dict
print('Dict:')
user_dict = {}
user_dict['PP'] = 10
user_dict['QQ'] = 20
user_dict['RR'] = 30
user_dict['SS'] = 40
user_dict['TT'] = 50
user_dict['UU'] = 60
for item in user_dict.items():
   print(item)
#now, we will change the value for key QQ
user_dict['QQ'] = 111
print('After changing value of specific key in Dict')
for item in user_dict.items():
   print(item)
print()
#we will create ordered dict
print('OrderedDict:')
user_ordered_dict = collections.OrderedDict()
user_ordered_dict['PP'] = 10
user_ordered_dict['QQ'] = 20
user_ordered_dict['RR'] = 30
user_ordered_dict['SS'] = 40
user_ordered_dict['TT'] = 50
user_ordered_dict['UU'] = 60
for item in user_ordered_dict.items():
   print(item)
# now, we will change the value for specific key QQ
user_ordered_dict['QQ'] = 111
print('After changing value of specific key in Ordered Dict')
for item in user_ordered_dict.items():
   print(item)

輸出:

Dict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)
After changing value of specific key in Dict
('PP', 10)
('QQ', 111)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)

OrderedDict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)
After changing value of specific key in Ordered Dict
('PP', 10)
('QQ', 111)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)

刪除和重新插入 OrderedDict 類中的元素

當我們從 OrderedDict 類中刪除一個元素,然後執行該特定鍵和值的重新插入操作時,它會將該元素推到後面。雖然,OrderedDict 類在插入過程中保持順序,但是當執行刪除過程時,它會移除順序信息,並將重新插入的元素視為新條目。

示例:


import collections
#we will create ordered dict
print('OrderedDict:')
user_ordered_dict = collections.OrderedDict()
user_ordered_dict['PP'] = 10
user_ordered_dict['QQ'] = 20
user_ordered_dict['RR'] = 30
user_ordered_dict['SS'] = 40
user_ordered_dict['TT'] = 50
user_ordered_dict['UU'] = 60
for item in user_ordered_dict.items():
   print(item)
#First we will delete item in key RR
user_ordered_dict.pop('RR')
print('After Deleting the key')
for item in user_ordered_dict.items():
   print(item)
#now, we will re-inserte the item 
user_ordered_dict['RR'] = 30
print('After Re-inserting the key and value')
for item in user_ordered_dict.items():
   print(item)   

輸出:

OrderedDict:
('PP', 10)
('QQ', 20)
('RR', 30)
('SS', 40)
('TT', 50)
('UU', 60)
After Deleting the key
('PP', 10)
('QQ', 20)
('SS', 40)
('TT', 50)
('UU', 60)
After Re-inserting the key and value
('PP', 10)
('QQ', 20)
('SS', 40)
('TT', 50)
('UU', 60)
('RR', 30)

如何在訂單的開頭插入訂單

當用戶想要在 OrderedDict 類的開頭插入一些元素時,他/她可以使用「更新」方法。

示例:


from collections import OrderedDict
user_ordered_dict = OrderedDict([('Jake', '10'), ('John', '20'), ('Ross', '40')])
print("The current dictionary values are :")
print(user_ordered_dict)
user_ordered_dict.update({'Ryan':'70'})
user_ordered_dict.move_to_end('Ryan', last = False)
print("The updated dictionary values are : ")
print(user_ordered_dict)

在上面的代碼中:

  • 首先,我們已經導入了所需的包。
  • 然後,我們通過使用 order ordinate 創建了有序字典。
  • 我們使用「更新」方法來指定鍵及其值。
  • 然後,我們使用’ move_to_end ‘函數將鍵及其值移動到最後。
  • 顯示所需的輸出。

輸出:

The current dictionary values are :
OrderedDict([('Jake', '10'), ('John', '20'), ('Ross', '40')])
The updated dictionary values are : 
OrderedDict([('Ryan', '70'), ('Jake', '10'), ('John', '20'), ('Ross', '40')])

如何用 OrderedDict 檢查字元串中的字元順序

如果用戶想要檢查字元串中字元的順序,他們可以使用「OrderedDict」方法。讓我們理解下面的例子。

示例:


from collections import OrderedDict
def check_order(user_input, user_pattern):
   user_dict = OrderedDict.fromkeys(user_input)
   pattern_length = 0
   for key,value in user_dict.items():
      if (key == user_pattern[pattern_length]):
         pattern_length = pattern_length + 1
      if (pattern_length == (len(user_pattern))):
         return 'The order of pattern is correct'
   return 'The order of pattern is incorrect'
user_input = 'Hello Jake'
input_pattern = 'Ja'
print("The string is ")
print(user_input)
print("The input pattern is ")
print(input_pattern)
print(check_order(user_input,input_pattern))
user_input = 'Hello Jake'
input_pattern = 'ke'
print("The string is ")
print(user_input)
print("The input pattern is ")
print(input_pattern)
print(check_order(user_input,input_pattern))

在上面的代碼中:

  • 首先,我們導入了所需的包。
  • 然後,我們定義了「check_order」方法,該方法將採用兩個參數。
  • 然後,我們使用「fromkeys」方法創建了有序字典。
  • 我們已經將模式的長度初始化為 0。
  • 如果鍵等於模式,則模式的長度將增加。
  • 但是,如果模式的長度與當前長度相同,這意味著順序是正確的。否則,訂單不正確。

輸出:

The string is 
Hello Jake
The input pattern is 
Ja
The order of pattern is correct
The string is 
Hello Jake
The input pattern is 
ke
The order of pattern is incorrect

結論

在本教程中,我們討論了 OrderedDict 以及它與普通字典的區別。我們還解釋了用戶如何在 OrderedDict 中刪除和插入元素,並在字典順序的開頭重新排列它們。


原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/246724.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:17
下一篇 2024-12-12 13:17

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python編程二級證書考試相關現已可以上網購買

    計算機二級Python考試是一項重要的國家級認證考試,也是Python編程的入門考試。與其他考試一樣,Python編程二級證書的考生需要進入正式考試,而為了備考,這篇文章將詳細介紹…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論