设为首页 收藏本站
查看: 1272|回复: 0

[经验分享] python 字典操作函数

[复制链接]

尚未签到

发表于 2015-4-25 12:06:01 | 显示全部楼层 |阅读模式
  Python的字典操作
  Python提供了多种应用于字典的操作。因为字典为容器,内建len函数可以将字典当作单一参数使用听切返回字典对象中项目(键/值对)的数目。

字典会员

在Python2.2以及后面版本,D中的k运算符检测是否对象k是字典D中的键。如果是返回True如果不是返回False。相似的,

索引一个字典

字典D中的值与相关的键k被索引表示为:D[k]。索引字典没有的键会引起意外。例如:

d = { 'x':42, 'y':3.14, 'z':7 }
d['x']                          # 42
d['z']                          # 7
d['a']                          # raises exception

平整赋值到一个使用还不在字典中的键的索引(例如,D[newkey]=value)是一个可行的操作,该操作加载键和值到字典里新的项目中。例如:

d = { 'x':42, 'y':3.14, 'z':7 }
d['a'] =16                     # d is now {'x':42,'y':3.14,'z':7,'a':16}

delD[k]中的del语句,删除字典中拥有键k的项目。如果k不是字典D中的键,delD[k]就会引起意外。

字典方法

字典对象提供了多种方法,如下表格所示。非变异方法返回结果,但不改变它们使用的对象。在下面列表中,D和D1代表任何字典对象,k代表D中任何有效的键,x为任何对象。
方法
描述
Non-mutating methods

D.copy( )
Returns a (shallow) copy of the dictionary
D.has_key(k)
Returns True if k is a key in D, otherwise returns False
D.items( )
Returns a copy of the list of all items (key/value pairs) inD
D.keys( )
Returns a copy of the list of all keys in D
D.values( )
Returns a copy of the list of all values in D
D.iteritems( )
Returns an iterator on all items(key/value pairs) in D
D.iterkeys( )
Returns an iterator on all keys in D
D.itervalues( )
Returns an iterator on all values in D
D.get(k[,x])
Returns an iterator on all values in D
Mutating methods

D.clear( )
Removes all items from D
D.update(D1)
Foreach k in D1, sets D[k] equal to D1[k]
D.setdefault(k[,x])
Returns D[k] if k is a key in D; otherwise sets D[k] equal to x andreturns x
D.popitem( )
Removes and returns an arbitrary item (key/value pair)

项目,键还有值方法以任意排列返回它们的列表结果。然而,如果不加干预的呼叫字典中中任何方法,结果的顺序一样。iteritems,iterkeys,以及itervalues方法,对于Python2.2是新的,它们返回相当于这些列表的迭代器。迭代器比列表消费更少内存,但是在当迭代一个迭代器时不允许修改字典。然而,迭代列表返回项目,键或值不会传递这种限制。直接迭代字典D就如同迭代于D.terkeys()一样。

popitem方法可以是用于毁灭性迭代到字典。项目和popitem都返回字典项目为键/值对,但使用popitem消耗更少内存,就如同它并不依赖单独的项目列表。如果当循环时可以摧毁字典,节约内存使得在重复巨大字典中可以使用惯用语。在Python2.2及以后版本,当循环是直接迭代字典(或iterkeys或iteritems)也会消耗适度的内存,而且不会摧毁被迭代的的字典。

setdefault方法返回与get相同的结果,但如果k不是D的键,setdefault还会有綁定D[k]到x值的副作用。
#---------------------------------------------------------------------------------------------
  a ={'a':'1','b':'2','c':'3'}
  >>> printa.items()
[('a', '1'), ('c', '3'), ('b', '2')]
>>> printa.keys()
['a', 'c', 'b']
  >>> printa.values()
['1', '3', '2']
  >>> printa.has_key('b')
True
  >>> dela['a']
>>> print a
{'c': '3', 'b': '2'}
>>> a['e']='4'
>>> print a
{'c': '3', 'b': '2', 'e': '4'}
  >>> printa.get('b')
2
  
  此方法在2.3的版本下不能使用,于是经过测试,hoxide给出新的方法,更简单,而且2.3和2.4都可以用。
>;>;>; a = {'a': 1, 'b':2}
>;>;>; c = {'c':3}
>;>;>; a.update(c)
>;>;>; a
{'a': 1, 'c': 3, 'b': 2}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60572-1-1.html 上篇帖子: python 对ip段处理 下篇帖子: python 之禅:import this
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表