环境:python shell 3.5.1
首先是关于字典可不可以清空直接赋空字典:
>>> mydict1 ={1:'hello',2:'ohayo',3:'bonjour'} >>> mydict2 = mydict1 >>> mydict1 = {} >>> mydict2 {1: 'hello', 2: 'ohayo', 3: 'bonjour'}
为了避免这样,可以这样:
>>> mydict1 ={1:'hello',2:'ohayo',3:'bonjour'} >>> mydict2 = mydict1 >>> mydict1.clear() >>> mydict1 {} >>> mydict2 {}这里涉及的知识,跟c++的浅拷贝深拷贝类似
然后是关于字典的 get()和setdefault(),刚开始看的时候总混淆。
talk is cheap show me the code:
>>> mydict1 ={1:'hello',2:'ohayo'} >>> mydict1.get(1) 'hello' >>> mydict1.get(3) >>> mydict1.get(3,'None') 'None'显而易见,get(),第一个参数是key值,如果字典有对应key,就会返回key对应的value。但是没有对应key时,返回get()的第二个参数。
如果get()没有给出第二个参数,则会返回一个‘NoneType’类型。
接下来是setdefault():
>>> mydict1 ={1:'hello',2:'ohayo'} >>> mydict1.setdefault(3) >>> mydict1 {1: 'hello', 2: 'ohayo', 3: None}setdefault()第一个参数是要插入的key,第二个参数是value值,如果没有第二个参数,就默认为None。
>>> mydict1.setdefault(3,'bonjour') >>> mydict1 {1: 'hello', 2: 'ohayo', 3: None}
PS:一些字典相关的函数
创建字典相关:dict(), formkeys()
删除字典相关:del mydict1['name'], mydict1.clear(), mydict1.pop('name'), del mydict1, mydict1.popitem()