![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=1739333108-HQAQPoUURkkOukHTag0TT83d8yzL6dpw-0-a67b9a4434aede5f88cd9d7e3e24017d)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P123_61083.jpg?sign=1739333108-WhFxoN1wXv9bmOTERGl7WcJYIQSzIWn8-0-29ccb53adf499f104b251cabce66a295)
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=1739333108-hFoar9A7tfZgu9ZbBdK81G7SOKrzZKfw-0-0fc5fe980b6622e895dcc5ee97f007f5)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P124_61511.jpg?sign=1739333108-M96AiC59MHsMG4rJ7CTcwPfqgiKjDPDy-0-924469d35eb9ab7d1d235f23bbdef276)
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=1739333108-QqJ5wza9wBnA33uTF0ll7blh81AF1Bf5-0-6f30f100576cdbdc9b35cf907758e3df)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P124_61521.jpg?sign=1739333108-ZgJeJk6rNl7q1Pk35CkEVAuhU72xbLFM-0-d29faa3e9c0f9301f6691c6cb1d141dd)
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=1739333108-8oEDgfru3j52P2JUIF4L6mjglXZiqPNo-0-676bc13cf1cf361d1d7486f124489de6)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61931.jpg?sign=1739333108-tcqyBkCJrfsbcLNl1kEJYNt7fYaLnDqG-0-1517828ba3b08fae49df97b9c300109d)
程序实例ch9_32.py:setdefault( )方法,键不在字典内的应用。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61934.jpg?sign=1739333108-H76Xv2Mvvdt4VwtqfuGbKU3Qzyom7tfg-0-4a4c96cf4e08aef9d0843e404b7ee65e)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61940.jpg?sign=1739333108-Btgfn0TjWWbNpnx7qaJZZez88dvxHz96-0-47e52ed4890aec5b5848c828aef2e4e9)
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=1739333108-IWh0iuG2T3a82dC0AGNFeiWeFU9bMe3M-0-32435add91ae87301d49a4f01733e18d)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61950.jpg?sign=1739333108-a63iCXUJ9LOkirJ5pte3N9rk9IirTOCx-0-33530bdd6948865c0109f13fa600fe5b)
程序实例ch9_34.py:使用pop( )删除元素,同时元素不存在的应用。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61953.jpg?sign=1739333108-U0oDfiKHj7x1B9brlGjVFNuhBo7iMVo4-0-f5dc7cf8519a831888c94857a7ffad18)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P125_61959.jpg?sign=1739333108-7T0KoSXoJ6KMGiJOMunMvC0aNtqZBdjr-0-35d6e06e1595eedbc4a6b70cef9aac19)
习题
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个键-值,请自行发挥创意,然后打印出来。