- Python從入門到項目實踐(超值版)
- 聚慕課教育研發中心
- 942字
- 2020-01-20 14:50:16
4.6 字典中的方法
Python中內置了很多對字典操作的方法,下面一起來看一下。
4.6.1 遍歷字典

【例4-24】遍歷字典。

通過上述代碼,遍歷了b字典的所有鍵,同時能根據鍵獲取對應的值。
程序運行結果如圖4-25所示。

圖4-25 運行結果
【例4-25】迭代字典中的鍵是很常見的,可以省略for循環中的鍵方法調用迭代遍歷字典隱式迭代其鍵。代碼如下。

下面展示幾個直接獲取所有值或者鍵的方法。
【例4-26】將b字典的所有值得出轉換為list打印。

【例4-27】將b字典的所有的鍵值對得出轉換為list打印。

【例4-28】以鍵值對的方式獲取b字典的鍵值對。

程序運行結果如圖4-26所示。

圖4-26 運行結果
4.6.2 別名與復制

與列表的情況一樣,因為字典是可變的,我們需要知道別名。每當兩個變量引用同一個對象時,對一個變量的更改會影響另一個。
【例4-29】如果想要修改字典并保留原始副本,請使用復制方法。例如,opposites是一個包含反義詞的字典。

【例4-30】alias和opposites是指同一個對象;copy是指同一字典的新副本。如果修改alias,opposites也會改變。

程序運行結果如圖4-27所示。

圖4-27 運行結果
如果是復制,那么opposites是不會改變的。
4.6.3 統計頻率

Python的字典的api能夠幫助統計字符串中字母的頻率,下面看一下它的使用方法。
【例4-31】統計頻率1。

程序運行結果如圖4-28所示。

圖4-28 運行結果
我們從一個空字典開始。對于字符串中的每個字母,找到當前計數(可能為零)并遞增它。最后,字典包含字母對和它們的頻率。
按字母順序顯示頻率表可能更有吸引力,可以使用items和sort方法來做到這一點。
【例4-32】統計頻率2。

程序運行結果如圖4-29所示。

圖4-29 運行結果
4.6.4 字典排序

對字典進行排序?這其實是一個偽命題,首先搞清楚Python字典的定義,字典本身默認以Key的字符順序輸出顯示,就像人們用的真實的字典一樣,按照ABCD字母的順序排列,并且本質上各自沒有先后關系,是一個哈希表的結構。
但實際應用中確實有這種排序的“需求”,即按照Values的值“排序”輸出,或者按照別的奇怪的順序進行輸出,只需要把字典轉換成list或者tuple,把字典每一對鍵值轉換為list中的子list或者子tuple再輸出,就可以達到目的。
【例4-33】字典排序1。

程序運行結果如圖4-30所示。

圖4-30 運行結果
字典始終都按照Key從小到大排序,與定義過程無關,轉換為list嵌套tuple這里也依然按照Key排序。
【例4-34】字典排序2。

程序運行結果如圖4-31所示。

圖4-31 運行結果
字典的順序依舊不變,但轉換為list嵌套tuple格式之后,完成了按照Value排序的操作。
- ClickHouse性能之巔:從架構設計解讀性能之謎
- Node.js 10實戰
- Kibana Essentials
- 零起步玩轉掌控板與Mind+
- Practical Data Science Cookbook(Second Edition)
- 編譯系統透視:圖解編譯原理
- C語言程序設計
- 名師講壇:Spring實戰開發(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- bbPress Complete
- Teaching with Google Classroom
- Android驅動開發權威指南
- Advanced UFT 12 for Test Engineers Cookbook
- PyQt編程快速上手
- Tableau Desktop可視化高級應用
- Mastering VMware Horizon 7(Second Edition)