第六章 字典(1)

Python中的字典课存储的信息量几乎不受限制。本章我们理解字典之后就能够准确的为各种真实物体建模。我们可以创建一个表示人的字典,然后想在其中存储多少信息就能储存多少信息:姓名、年龄、地址、职业,以及能描述它的任何方面。

6.1 一个简单的字典

alien_0 = {'color':'green', 'points':'5'}

print(alien_0['color'])
print(alien_0['points'])
green
5

6.2使用字典

在python中,字典是一系列键值对。每个见都与一个值相关联,可以使用键来访问相关联的值。与键相关联的可以是数、字符串、列表乃至字典。事实上可以将任何python对象用作字典中的值。
在python中,字典放在花括号{}中
键值对是两个相关联的值。指定键时,python将返回与之相关联的值。键和值之间用冒号:分隔

6.2.1 访问字典中的值

要获取与键相关联的值,可依次指定字典名和放在方括号内的键

alien_0 = {'color':'green'}
print(alien_0['color'])
green
alien_0 = {'color':'green','points':5}
new_points = alien_0['points']
print(f'You just earned {new_points} points!')
You just earned {new_points} points!

6.2.2添加键值对

字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指定字典名,用方括号阔气的键和相关联的值。

alien_0 = {'color':'green','points':5}
print(alien_0)
{'color': 'green', 'points': 5}
alien_0['x_position']=0
alien_0['y_position']=25
print(alien_0)
{'color': 'green', 'points': 5, 'x_position': 0, 'y_position': 25}

在python3.7中,字典中元素的排列顺序与定义时相同,如果将字典打印出来或遍历器元素,将发现元素的排列顺序和添加顺序相同。

6.2.3先创建一个空子典

alien_0 = {}

alien_0['color']= 'green'
alien_0['points']=5
print(alien_0)
{'color': 'green', 'points': 5}

使用字典来存储用户提供的数据或在编写能自动生成大量键值对的代码时,通常需要先定义一个空子典。

6.2.4修改字典中的值

要修改字典中的值,可依此指定字典名、用方括号括起的键,以及与该键相关联的新值。

alien_0 = {'color':'green'}
print(f"The alien is {alien_0['color']}.")

alien_0['color'] = 'yellow'
print(f"The alien is now {alien_0['color']}.")
The alien is green.
The alien is now yellow.
alien_0 = {'x_position':0,'y_position':25,'speed':'medium'}
print(f"Original poition :{alien_0['x_position']}")
# 向右移动外星人
# 根据当前速度确定将外星人向右移动多远
if alien_0['speed'] == 'slow':
    x_increment = 1
elif alien_0['speed'] == 'medium':
    x_increment = 2
else :
    x_increment = 3
alien_0['x_position'] = alien_0['x_position'] +x_increment
print(f"New position :{alien_0['x_position']}")
Original poition :0
New position :2

6.2.5删除键值对

对于字典中不再需要的信息,可使用del语句将相应的键值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

alien_0 = {'color':'green','points':5}
print(alien_0)
del alien_0['points']
print(alien_0)
{'color': 'green', 'points': 5}
{'color': 'green'}

6.2.6由类似对象组成的字典

favorite_languages = {'jen':'python',
                      'sarah':'c',
                      'edward':'ruby',
                      'phil':'python'}
language = favorite_languages['phil'].title()
print(f"Sarah's favorite language is {language}")
Sarah's favorite language is Python

字典存储的是一个对象的多种信息,但我们也可以使用字典来存储众多对象的同一种信息。对于较长的列表和字典,大多数编辑器提供了以类似方式设置格式的功能。对于较长的字典,还有其他一些可行的格式设置方式,因此在不同的编辑器中可能会看到稍微不同的格式设置方式。

6.2.7 使用get()来访问值

使用放在方括号内的键从字典中获取感兴趣的值时,可能会引起错误:如果指定的键不存在就会出错。

alien_0 = {'color':'green', 'speed':'slow'}
print(alien_0['points'])
---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

~\AppData\Local\Temp/ipykernel_34720/2526378129.py in <module>
      1 alien_0 = {'color':'green', 'speed':'slow'}
----> 2 print(alien_0['points'])


KeyError: 'points'

但就字典而言,可使用方法get()在指定的键不存在时返回一个默认值,从而避免这样的错误。

alien_0 = {'color':'green','speed':'slow'}
point_value = alien_0.get('points', 'No point value assigned.')
print(point_value)
No point value assigned.

如果指定的键有可能不存在,应考虑使用方法get(),而不要使用方括号表示法。若get()无第二个参数的值则返回None。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值