python字典的相关操作总结
最近再看python机器学习相关的代码时候,看到很多关于字典的操作,自己印象不那么深刻了,在这里自己也整理复习一下,跟大家分享出来,如果错误的地方,请留言,看到后就会修改,感谢!
Python 中的字典是Python中一个键值映射的数据结构,相关的操作如下:
1.1 创建字典
Python有两种方法可以创建字典,第一种是使用花括号,另一种是使用内建函数dict
1 dictionary1 = {} #方法一 2 dicttionary1 = dict() #方法二
1.2 对字典进行初始化
Python可以在创建字典的时候初始化字典,就像定义变量之后直接对其初始化是类似的,集体操作如下
1 dictionary1 = {“name”:'wind_under_the_wing'} #方法一 2 dictionary2 = dinct(name='wind_under_the_wing') #方法二
其实第二种方法是容易引发问题的,在这里把代码晒出来大家感兴趣的话自己去分析
1 key = 'name' 2 dictionary1 = {key:'wind_under_the_wing'} #{'name':"wind_under_the_wing'} 3 dictionary2 = dict(key='wind_under_the_wing') #{'key':'wind_under_the_wing'}
使用fromkeys()方法从列表中获取元素作为键值
>>> info = {}.fromkeys(['name', 'blog']) >>> info {'blog': None, 'name': None} >>> info = dict().fromkeys(['name', 'blog']) >>> info {'blog': None, 'name': None} >>> info = dict().fromkeys(['name', 'blog'], 'wind-under-the-wing') >>> info {'blog': 'wind-under-the-wing', 'name': 'wind-under-the-wing'}
使用字典推导式初始化字典:类似列表推导式,我们可以通过一个for循环表达式来创建一个字典
1 >>>dd = {x: x*x for x in range(5)} 2 3 >>>dd 4 >>>{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
1.3 获取键值
>>> info = {'name':'linux', 'blog':'wind-under-the-wing'} >>> info['name'] 'linux'
但是如果获取不存在的键的值就会触发的一个KeyError异常,字典有一个get方法,可以使用字典get方法更加优雅的获取字典
>>> info = dict(name= 'linux', blog='wind-under-the-wing') >>> info.get('name') 'linux' >>> info.get('blogname') None >>> info.get('blogname', 'linux') 'linux'
我们看到使用get方法获取不存在的键值的时候不会触发异常,同时get方法接收两个参数,当不存在该键的时候就会返回第二个参数的值 我们可以看到使用get更加的优雅
1.4 字典元素修改
1 >>>myd = dict(a=1, b=2, c=3) 2 3 >>>myd['a'] = 9 # 改变某个键的值 4 5 >>>myd 6 >>>{'a': 9, 'b': 2, 'c': 3} 7 8 >>>myd['e'] = 8 # 增加新的键值对 9 >>>myd 10 >>>{'a': 9, 'b': 2, 'c': 3, 'e': 8} 11 12 >>>del myd['e'] # 删除某个键及其值 13 >>>myd 14 >>>{'a': 9, 'b': 2, 'c': 3} 15 16 >>>myd.pop('c') # 删除某个键及其值并得到其值 17 >>>3 18 19 >>>myd 20 >>>{'a': 9, 'b': 2}
尤其要注意pop()删除某个键值对,并且得到其中的值
1.5 字典删除
可以调用Python内置关键字del来删除一个键值
>>> info = dict(name='cold', blog='linuxzen.com') >>> info {'blog': 'linuxzen.com', 'name': 'cold'} >>> del info['name'] >>> info {'blog': 'linuxzen.com'}
同时也可以使用字典的pop方法来取出一个键值,并删除
>>> info = dict(name='cold', blog='linuxzen.com') >>> info.pop('name') 'cold' >>> info {'blog': 'linuxzen.com'}
1.6 其他操作
获取所有key
>>> info = dict(name='cold', blog='linuxzen.com') >>> info.keys() ['blog', 'name']
获取key,value并循环
>>> info = dict(name='cold', blog='linuxzen.com') >>> for key, value in info.items(): ... print key, ':', value ... blog : linuxzen.com name : cold