您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > python字典操作
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']#42d['z']#7d['a']#raisesexception平整赋值到一个使用还不在字典中的键的索引(例如,D[newkey]=value)是一个可行的操作,该操作加载键和值到字典里新的项目中。例如:d={'x':42,'y':3.14,'z':7}d['a']=16#disnow{'x':42,'y':3.14,'z':7,'a':16}delD[k]中的del语句,删除字典中拥有键k的项目。如果k不是字典D中的键,delD[k]就会引起意外。字典方法字典对象提供了多种方法,如下表格所示。非变异方法返回结果,但不改变它们使用的对象。在下面列表中,D和D1代表任何字典对象,k代表D中任何有效的键,x为任何对象。方法描述Non-mutatingmethodsD.copy()Returnsa(shallow)copyofthedictionaryD.has_key(k)ReturnsTrueifkisakeyinD,otherwisereturnsFalseD.items()Returnsacopyofthelistofallitems(key/valuepairs)inDD.keys()ReturnsacopyofthelistofallkeysinDD.values()ReturnsacopyofthelistofallvaluesinDD.iteritems()Returnsaniteratoronallitems(key/valuepairs)inDD.iterkeys()ReturnsaniteratoronallkeysinDD.itervalues()ReturnsaniteratoronallvaluesinDD.get(k[,x])ReturnsaniteratoronallvaluesinDMutatingmethodsD.clear()RemovesallitemsfromDD.update(D1)ForeachkinD1,setsD[k]equaltoD1[k]D.setdefault(k[,x])ReturnsD[k]ifkisakeyinD;otherwisesetsD[k]equaltoxandreturnsxD.popitem()Removesandreturnsanarbitraryitem(key/valuepair)项目,键还有值方法以任意排列返回它们的列表结果。然而,如果不加干预的呼叫字典中中任何方法,结果的顺序一样。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')Truedela['a']printa{'c':'3','b':'2'}a['e']='4'printa{'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}
本文标题:python字典操作
链接地址:https://www.777doc.com/doc-4759784 .html