Python字典的操作總結(附範例)
這篇文章帶給大家的內容是關於Python字典的操作總結(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
字典(dict)結構是Python中常用的資料結構,筆者結合自己的實際使用經驗,對字典方面的相關知識做個小結,希望能對讀者一些啟發~
建立字典
常見的字典建立方法就是先建立一個空字典,然後逐一加入鍵(key)和值(value),例如建立字典person={'name':'Tome', 'age' :22, 'city':'Shanghai, 'ID': '073569'},可以使用以下程式碼:
person = {} person['name'] = 'Tom' person['age'] = 22 person['city'] = 'Shanghai' person['ID'] = '073569' print(person)
輸出結果為:
{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'}
這樣的建立方式簡單原始,程式碼不夠簡潔優雅。我們用zip函數,來簡單快速地建立這個字典:
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print(person)
輸出結果與原先程式碼一致。
遍歷字典
在實際應用中,我們常常需要遍歷字典,實作的方法可參考以下程式碼:
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) for key, value in person.items(): print('Key:%-6s, Value:%s'%(key, value))
輸出結果為:
Key:name , Value:Tom Key:age , Value:22 Key:city , Value:Shanghai Key:ID , Value:073569
對調鍵值對
在實際應用中,有時候我們需要查找字典中某個值(value)對應的鍵(key),遍歷字典是一種選擇,對調鍵值對是另一種選擇。對調鍵值對的實作程式碼如下:
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print('对调前:') print(person) Person = {v:k for k,v in person.items()} print('对调后:') print(Person)
輸出結果為:
对调前: {'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'} 对调后: {'Tom': 'name', 22: 'age', 'Shanghai': 'city', '073569': 'ID'}
#有序字典OrderedDict
Python中的字典是無序的,其取出來的鍵是無序的,因為它是按照hash來儲存的。有時候,我們需要字典的條目(items)或鍵(keys)是有序儲存的,這時候可以使用collections
模組中的OrderedDict
,它是一種有序的字典結構。
範例程式碼如下(Python版本為3.5.2):
from collections import OrderedDict d = {} d['Tom']='A' d['Jack']='B' d['Leo']='C' d['Alex']='D' print('无序字典(dict):') for k,v in d.items(): print(k,v) d1 = OrderedDict() d1['Tom']='A' d1['Jack']='B' d1['Leo']='C' d1['Alex']='D' print('\n有序字典(OrderedDict):') for k,v in d1.items(): print(k,v)
輸出的結果為:
无序字典(dict): Leo C Jack B Tom A Alex D 有序字典(OrderedDict): Tom A Jack B Leo C Alex D
預設字典collections.defaultdict
# #collections. defaultdict
是Python內建dict
類別的子類,第一個參數為default_factory屬性提供初始值,預設為None
。它覆蓋一個方法並添加一個可寫實例變數。它的其他功能與dict
相同,但會為一個不存在的鍵提供預設值,從而避免KeyError
異常。
我們以統計列表中單字的詞頻為例,展示collections.defaultdict
的優點。
一般情況下,我們統計清單中的單字詞頻程式碼為:
words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = {} for word in words: if word not in freq_dict.keys(): freq_dict[word] = 1 else: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
輸出結果如下:
sun 2 moon 2 star 4
使用#collections.defaultdict
,程式碼可以最佳化:
from collections import defaultdict words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = defaultdict(int) for word in words: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
其它預設初始值可以為set,list,dict等。
#以上是Python字典的操作總結(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
