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更加的优雅

扫描二维码关注公众号,回复: 7695415 查看本文章

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

 

猜你喜欢

转载自www.cnblogs.com/wind-under-the-wing/p/11769244.html
今日推荐