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'}
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 字典删除
可以调用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.5 其他操作
获取所有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
标签:总结,info,name,python,blog,under,wing,wind,字典 来源: https://www.cnblogs.com/wind-under-the-wing/p/11769244.html