6.1一个简单的字典
来看一个游戏,其中包含一些外星人,这些外星人的颜色和点数各不相同,下面是一个简单的字典,存储了有关特定外星人的信息:
alien_0={'color':'green','points':5}
print (alien_0['color'])
print (alien_0['points'])
运行结果如下:
6.2使用字典
在python中,字典是一系列键-值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何python对象用作字典中的值。
在python中,字典用放在花括号{}中的一系列键-值对表示,如前面定示例所示:
键-值对是两个相关联的值。指定键时,python将返回与之相关联的值。键和值之间用冒号隔开,而键-值对之间是用逗号分隔。在字典中,你想存储多少个键-值对都可以。
6.2.1 访问字典中的值
要获取与键相关联的值,可一次指定字典名和放在方括号内的键,如下所示 :
现在,你可以访问外星人alien_0的颜色和点数。如果玩家射杀了这个外星人,你就可以使用下面的代码来确定玩家应获得多少个点:
alien_0={'color':'red','points':'5'}
new_points=alien_0['points']
print ("You just earned "+str(new_points)+'points!')
运行结果如下:
6.2.2 添加键-值对
字典是一种动态结构,可随时在其中添加键-值对。要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。
下面在字典alien_0中添加两项信息:外星人的x坐标和y坐标,让我们能够在屏幕的特定位置显示该外星人。我们将这个外星人放在屏幕左边缘,且离屏幕上边缘25像素的地方。由于屏幕坐标系的原点通常为左上角,因此要将该外星人放在屏幕左边缘,可将x坐标设置为0;要将该外星人放在离屏幕顶部25像素的地方,可将y坐标设置为25,如下所示:
alien_0={'color':'yellow','point':5}
print (alien_0)
alien_0['x_position']=0
alien_0['y_position']=25
print (alien_0)
运行结果如下:
6.2.3先创建一个空字典
有时候,在空字典中给添加键-值对是为了方便,而有时候必须这样做。为此,可先使用一对空的花括号定义一个字典,再分行添加键-值对。例如,下例演示了如何以这种方式创建字典alien_0:
alient_0={}
alient_0['color']='green'
alient_0['points']=5
alient_0['x_position']=0
alient_0['y_position']=25
print alient_0
运行结果如下:
使用字典来存储用户提供的数据或在编写能自动生成大量键-值对的代码时,通常都需要定义一个空字典。
6.2.4修改字典中的值
要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。例如,假设随着游戏的进行,需要将一个外星人从绿色改为黄色:
alient_0={}
alient_0['color']='green'
alient_0['points']=5
alient_0['x_position']=0
alient_0['y_position']=25
print alient_0
alient_0['color']='yellow'
print alient_0
运行结果如下:
来看一个更有趣的例子:对一个能够以不同速度移动的外星人的位置进行跟踪。为此,我们将存储该外星人的当前速度,并据此确定该外星人将向右移动多远:
alien_0={'x_position':0,'y_position':25,'speed':'medium'}
print