Python字典操作详细介绍及字典内建方法分享
创建
方法一:
>>>dict1={}
>>>dict2={'name':'earth','port':80}
>>>dict1,dict2
({},{'port':80,'name':'earth'})
方法二:从Python2.2版本起,可以使用一个工厂方法,传入一个元素是列表的元组作为参数
>>>fdict=dict((['x',1],['y',2]))
>>>fdict
{'y':2,'x':1}
方法三:
从Python2.3版本起,可以用一个很方便的内建方法fromkeys()来创建一个"默认"字典,字典中元素具有相同的值(如果没有给出,默认为None,这个有点像我框架的oneObject方法):
>>>ddict={}.fromkeys(('x','y'),-1)
>>>ddict
{'y':-1,'x':-1}
>>>
>>>edict={}.fromkeys(('foo','bar'))
>>>edict
{'foo':None,'bar':None}
访问字典中的值
想遍历一个字典(一般用键),你只需要循环查看它的键,像这样:
>>>dict2={'name':'earth','port':80}
>>>
>>>>forkeyindict2.keys():
...print'key=%s,value=%s'%(key,dict2[key])
...
key=name,value=earth
key=port,value=80
从Python2.2开始,可以直接在for循环里遍历字典。
>>>dict2={'name':'earth','port':80}
>>>
>>>>forkeyindict2:
...print'key=%s,value=%s'%(key,dict2[key])
...
key=name,value=earth
key=port,value=80
想判定其是否存在某个键值对,可以使用has_key()或in、notin操作符
>>>'server'indict2#或dict2.has_key('server')
False
>>>'name'indict#或dict2.has_key('name')
True
>>>dict2['name']
'earth'
一个字典中混用数字和字符串的例子:
>>>dict3={}
>>>dict3[1]='abc'
>>>dict3['1']=3.14159
>>>dict3[3.2]='xyz'
>>>dict3
{3.2:'xyz',1:'abc','1':3.14159}
更新字典
采取覆盖更新
上例中dict2['name']='earth';
更新dict2['name']='abc';
删除字典元素和字典
deldict2['name']#删除键为“name”的条目
dict2.clear()#删除dict2中所有的条目
deldict2#删除整个dict2字典
dict2.pop('name')#删除并返回键为“name”的条目
dict2={'name':'earth','port':80}
>>>dict2.keys()
['port','name']
>>>
>>>dict2.values()
[80,'earth']
>>>
>>>dict2.items()
[('port',80),('name','earth')]
>>>
>>>foreachKeyindict2.keys():
...print'dict2key',eachKey,'hasvalue',dict2[eachKey]
...
dict2keyporthasvalue80
dict2keynamehasvalueearth
update()方法可以用来将一个字典的内容添加到另外一个字典中
dict3={'server':'http','port':80,'host':'venus'}
>>>dict3.clear()
>>>dict3
{}
映射类型相关的函数
>>>dict(x=1,y=2)
{'y':2,'x':1}
>>>dict8=dict(x=1,y=2)
>>>dict8
{'y':2,'x':1}
>>>dict9=dict(**dict8)
>>>dict9
{'y':2,'x':1}
dict9=dict8.copy()
字典内建方法
| 方法名字 | 操作 |
|---|---|
| dict.clear() | 删除字典中所有元素 |
| dict.copy() | 返回字典(浅复制)的一个副本 |
| dict.fromkeysc(seq,val=None) | 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(如果不提供此值,则默认为None) |
| dict.get(key,default=None) | 对字典dict中的键key,返回它对应的值value,如果字典中不存在此键,则返回default的值(注意,参数default的默认值为None) |
| dict.has_key(key) | 如果键(key)在字典中存在,返回True,否则返回False.在Python2.2版本引入in和notin后,此方法几乎已废弃不用了,但仍提供一个可工作的接口。 |
| dict.items() | 返回一个包含字典中(键,值)对元组的列表 |
| dict.keys() | 返回一个包含字典中键的列表 |
| dict.values() | 返回一个包含字典中所有值的列表 |
| dict.iter() | 方法iteritems(),iterkeys(),itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。 |
| dict.pop(key[,default]) | 和方法get()相似,如果字典中key键存在,删除并返回dict[key],如果key键不存在,且没有给出default的值,引发KeyError异常。 |
| dict.setdefault(key,default=None) | 和方法set()相似,如果字典中不存在key键,由dict[key]=default为它赋值。 |
| dict.setdefault(key,default=None) | 和方法set()相似,如果字典中不存在key键,由dict[key]=default为它赋值。 |
总结
以上就是本文关于Python字典操作详细介绍及字典内建方法分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
python基础练习之几个简单的游戏
Python基础练习之用户登录实现代码分享
Python面向对象编程基础解析(一)
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。