python字典的创建、插入、删除和查询操作示例
一、创建
通过{}来标识一个字典,内容是键值对,形式就是典型的json对象的格式。如:
l={}#创建一个空字典 l={"a":1,"b":2} l={}#创建一个空字典 l={"a":1,"b":2}#创建一个字典,包含两个成员 l=[("a",1),("b",2)]#创建一个列表 l#输出列表 [('a', 1), ('b', 2)] dict(l)#通过dict将列表转为字典 {'a': 1, 'b': 2}
二、插入和修改
举例如下
l {'a': 1, 'b': 2} l["c"]=3#插入字典 l {'a': 1, 'b': 2, 'c': 3} l["b"]=8#修改字典 l {'a': 1, 'b': 8, 'c': 3}
直接通过 字典变量名[key名]就可以添加新的key-value项。
从上面例子可以看出,如果指定的key不存在,就会自动添加一个。
如果指定的key存在,就会用指定的值替换存在的key对应的value值。
三、删除
1、清除字典中的所有项
字典对象提供了 clear方法,可以清楚字典中的所有项。
l {'a': 1, 'b': 8, 'c': 3} l.clear()#清空字典 l {}
2、del 字典变量
举例如下
l {'a': 1, 'b': 2} new_l=l new_l {'a': 1, 'b': 2} del l["a"] #删除元素后,看l和new_l中的元素变化 l {'b': 2} new_l {'b': 2} del l #删除l后,new_l未受到影响 new_l {'b': 2} l=new_l #再次复活l l #查看一下l {'b': 2} new_l #查看一下new_l,跟l又一样了 {'b': 2} new_l.clear() #使用clear清空new_l,发现l也被清空了 new_l {} l {}
del是python中的内置语句,用于删除变量的定义。从上面例子可以看出,它只是删除变量定义,不会删除变量指向的内容,当然如果这个内容没有被其它变量引用,python会自动释放。
上面的例子,l和new_l指向同一个字典对象,即使我们删除了l,对new_l是不影响的。
这点与clear方法不同,clear方法是删除字典中的所有内容,如果多个变量指向同一字典,该字典内容被clear啊,显然所有变量都能察觉到。
3、pop方法
先看例子
>>> data={"x":1,"y":2} >>> print data {'y': 2, 'x': 1} >>> value = data.pop("x")#使用pop后,data["x"]也被删除 >>> print value 1 >>> print data {'y': 2} >>> value = data.pop("z") Traceback (most recent call last):File "<stdin>", line 1, in <module> KeyError: 'z'
pop方法是根据传入的key值,返回对应的value值,并删除字典中的该条目。
但如果指定的key对应的条目在字典中不存在,则程序会出现异常。
四、查询
1、判断key是否存在
在很多情况下,我们需要判断一个key是否存在。代码如:
>>> data={"x":1} >>> if "x" in data: ... print True ... else: ... print False ... True >>> if "y" in data: ... print True ... else: ... print False ... False
除了用 in 运算符来判断某个key是否在字典中存在外,还可以用字典的方法 has_key(key)(注意:Python 3.X 不支持该方法)来检查,效果是一样的。
2、获取指定key的value
格式:字典变量[key值],举例如
>>> data={"x":1} >>> data["x"] 1 >>> data["y"] Traceback (most recent call last):File "<stdin>", line 1, in <module> KeyError: 'y'
可以看出,如果key在字典中不存在,会报异常。还有一种更友好的方式,就是利用get方法,举例如下:
>>> data={"x":1} >>> print data.get("x") 1 >>> print data.get("y") None
可以看出,即使key不存在,程序不会出异常,get会返回一个None值。
如果我们希望在获取key对应的value时,如果key存在,则正常返回,如果key不存在,可以自动往字典中添加一个条目,并返回设置的条目的值。
这可以用到setdefault方法,举例如下:
>>> data={"x":1} >>> print data.setdefault("x") 1 >>> print data.setdefault("x",3) 1 >>> print data {'x': 1} >>> print data.setdefault("y",2) 2 >>> print data {'y': 2, 'x': 1} >>> print data.setdefault("z") None >>> print data {'y': 2, 'x': 1, 'z': None}
从上面代码例子中,我们可以很清晰的看出setdefault方法的作用。
3、遍历字典
很多场景下,我们需要遍历整个字典,获取到其中的每个条目信息。这可以这么来做,具体看代码:
>>> data = {"x":1,"y":2,"z":3} >>> for key in data: ... print key ... print data[key]
通过for循环,可以很方便的遍历整个字典。