最近再看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