官术网_书友最值得收藏!

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排序的操作。

主站蜘蛛池模板: 涿州市| 七台河市| 会宁县| 罗定市| 奉新县| 靖江市| 东台市| 大安市| 门源| 稻城县| 田东县| 德州市| 苏尼特右旗| 安化县| 龙山县| 山东省| 珲春市| 道真| 桦川县| 达拉特旗| 龙州县| 巨鹿县| 婺源县| 牟定县| 宣化县| 虹口区| 綦江县| 抚宁县| 景德镇市| 巧家县| 赞皇县| 乌兰浩特市| 上蔡县| 红河县| 资溪县| 沈丘县| 全州县| 广河县| 玛纳斯县| 高雄县| 嘉义市|