![Python王者归来](https://wfqqreader-1252317822.image.myqcloud.com/cover/412/31794412/b_31794412.jpg)
9-7 字典常用的函数和方法
9-7-1 len( )
可以列出字典元素的个数。
程序实例ch9_28:列出字典以及字典内的字典元素的个数。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P123_61077.jpg?sign=1738886154-95Ci4YwI3tcfr8cRm3sNsGzVOCgrFu4W-0-63a19f6e7ef5fc9e090d57ea5034ad10)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P123_61083.jpg?sign=1738886154-PWt5QbWTurNJCNj9VDLmzyt6W6uxkPJ0-0-54bf8d317b992839dc7743f1fd8bd41c)
9-7-2 fromkeys( )
这是建立字典的一个方法,它的语法格式如下:
name_dict = dict.fromkeys(seq[, value])# 使用seq序列建立字典
上述会使用seq序列建立字典,序列内容将是字典的键,如果没有设定value则用None当字典键的值。
程序实例ch9_29.py:分别使用列表和元组建立字典。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P124_61505.jpg?sign=1738886154-p6r0oCmENBhe1L37O4Sd8iK8O2qJdKD9-0-e36c8e53008801917fcc511098c220e4)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P124_61511.jpg?sign=1738886154-5APNZE3JXycOyX48I50qpaa9rszLXyXi-0-1b65c3fa80bf068cc3017b446b2d5d9a)
9-7-3 get( )
搜寻字典的键,如果键存在则传回该键的值,如果不存在则传回默认值。
ret_value = dict.get(key[, default=none])# dict是欲搜寻的字典
key是要搜寻的键,如果找不到key则传回default的值(如果没设就传回None)。
程序实例ch9_30.py:get( )方法的应用。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P124_61515.jpg?sign=1738886154-MhEPtQnx5ijEZN1yFeFQ3WiR4WdQi1o6-0-988e7c33fde970ba4b8ec1a12ed6d698)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P124_61521.jpg?sign=1738886154-nGPMvoFQmweCYifkiBJ5iOzgnjtymA0J-0-3a214741caa12b302acb2fe4b330dc30)
9-7-4 setdefault( )
这个方法基本上与get( )相同,不同之处在于get( )方法不会改变字典内容。使用setdefault( )方法时若所搜寻的键不在,会将键-值加入字典,如果有设定默认值则将键:默认值加入字典,如果没有设定默认值则将键:None加入字典。
ret_value = dict.setdefault(key[, default=none])# dict是欲搜寻的字典
程序实例ch9_31.py:setdefault( )方法,键在字典内的应用。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P124_61525.jpg?sign=1738886154-63ONg1p2ZA2tmuxkPmKVx8i1DLygZcI6-0-7ac399a673fec67d2c39ebc9d33fb8c0)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61931.jpg?sign=1738886154-UCg4xPyYtQhegYglh793XWYvxTmfr9hp-0-78b87f8091a357b5b656ca52fc743149)
程序实例ch9_32.py:setdefault( )方法,键不在字典内的应用。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61934.jpg?sign=1738886154-8eMyV6VlbGXeun3LqQRqBuA7lQVYxryW-0-6c131158fea177188c835e1fdab57e52)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61940.jpg?sign=1738886154-vWSQ5WWlJip9HPTy9PuurUwB1JljbDF2-0-316493f8bd6620782e353e4b97582afe)
9-7-5 pop( )
这个方法可以删除字典元素,它的语法格式如下:
ret_value = dict.pop(key[, default])# dict是欲删除元素的字典
上述key是要搜寻删除的元素的键,找到时就将该元素从字典内删除,同时将删除键的值回传。当找不到key时则传回default设定的内容,如果没有设定则传回KeyError。
程序实例ch9_33.py:使用pop( )删除元素,同时元素存在的应用。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61944.jpg?sign=1738886154-qONtHAJzJeCnQEW5XaSHrfexI7KATpXp-0-e5c34dd8908e354db2b0133800ececf5)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61950.jpg?sign=1738886154-40xi7hbMcjUGx3Zo4Okg47VF7FBXNqfT-0-1d7689f1567bd83fd60783c9eb4e5f61)
程序实例ch9_34.py:使用pop( )删除元素,同时元素不存在的应用。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61953.jpg?sign=1738886154-scJk9bPPv5uPtx6MBHdxsYyfYIbcmNWh-0-9084dab85ba2db9864dc30524cda3025)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61959.jpg?sign=1738886154-Fa0633jwpZYPycmRaAGPEamEWNLyqBtw-0-696efefdf9ded77961e7b91f972753ee)
习题
1.将程序实例ch9_4.py的输出结果改成一行。
2.重新设计ch9_15.py,将程序设计为可以重新输入元素,直到输入是q键程序才结束。
3.重新设计ch9_24.py,将最后3名小兵改成tag是green、score是10、speed是fast。
4.请参考ch9_26.py,设计5个旅游地点当键,值则是由字典组成,内部包含5个键-值,请自行发挥创意,然后打印出来。