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