《Python编程:从入门到实践(第二版)》自学笔记(七)

字典

在Python中,字典是另一种可变容器模型,且可存储任意类型对象。字典是一系列键值对,每个键都与一个值相关联,可使用键来访问相关联的值。与键相关联的值可以是数、字符串、列表乃至字典,字典的每个键值对用冒号分割,每个键值对之间用逗号分割,整个字典包括在一对大括号{ }中

1
2
3
4
5
6
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])
输出:
green
5

那么对于列表来讲,想要访问里面的元素,可以根据元素的索引位置,进行访问。但由于在字典中谈不上什么索引的概念,所以想要访问的话,可以通过与值关联的键来进行访问

1
2
3
alien_0 = {'color': 'green'}
print(alien_0['color'])
输出:green

但在实际应用过程中,字典里的键值对随时会增加或者减少,这就需要随时能够对其进行操作,一般操作包括:增加,修改,删除。

增加:变量后+[‘键’] = 数值或者’字符串’,这里稍微注意下的是:在Python 3.7版本及更高版本的字典中,键值对的排序与添加的顺序直接关联

1
2
3
4
5
6
##增加
alien_0 = {'color': 'green', 'points': 5}
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)
输出:{'color': 'green', 'points': 5, 'y_position': 25, 'x_position': 0

之前接触的列表,在开始使用时,是可以创建一个空列表的。同理,字典在使用前也是可以创建一个空字典的,后期也可以不断的向里面已添加键值对

1
2
3
4
5
alien_0 = {}
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)
输出:{'color': 'green', 'points': 5}

修改:遵循与增加相同的格式

1
2
3
4
alien_0 = {'color': 'green'}
alien_0['color'] = 'yellow'
print(alien_0)
输出:alien_0 = {'color': 'yellow'}

删除:在列表中的删除,有一种删除方式是:使用del删除列表中的某个元素,格式是:del+变量[元素索引号],并且这里的删除是永久性的,后续被删除的元素是不可以再次被访问的

同样的,在字典中的删除,也可以使用del去实现,格式和列表中删除元素很相似,只不过将其中的元素索引号换成字典中的键,仅此而已,删除后的键值对也是无法再次被访问的

1
2
3
4
alien_0 = {'color': 'green', 'points': 5}
del alien_0['points']
print(alien_0)
输出:{'color': 'green'}

那么假设访问字典中某个不存在的键值对时,这是一种特使情况,就需要做相对应的处理,如果不处理,运行时将直接报错

1
2
3
4
5
6
7
alien_0 = {'color': 'green', 'speed': 'slow'}
print(alien_0['points'])
报错输出:
Traceback (most recent call last):
File "alien_no_points.py", line 2, in <module>
print(alien_0['points'])
KeyError: 'points'

如何处理?这里引入新的方法.get( )

方法.get( )的使用是需要指定两个参数,一个是必要参数,一个是非必要参数。第一个必要参数是:键,即访问字典中不存在的键;第二个非必要参数是:返回的值,即访问字典中的键不存在时,需要返回什么的信息(值)给使用者。如果不指定第二个的非必要参数,那么返回时,Python直接返回的是None。

方法.get( )的逻辑是:如果字典中存在访问的键,那就将反馈与之相关联的值;如果不存在,那就反馈指定的默认值,即上面所提到的第二个非必要参数,如果不指定这个第二个非必要的参数,Python将返回None,并且这里的None并非错误,而是一个表示所需值不存在的特殊值。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2019-2024 Carrol Chen
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信