字典
一个简单的字典:
alien_0 = {'color':'green','point': 5}
print(alien_0['color'])
print(alien_0['point'])
#运行结果:
green
5
字典和列表的区别:字典是{},列表是[],列表只能存储一系列元素,字典可以储存键-对关联关系
字典是一系列键-值对,每一个键都与一个值相对应,类似于映射关系,可以使用相应的键来访问值
字典中可以包含任意数量的键-值对
例如:可以用如下的代码实现:如果玩家击杀了一名外星人,会获得什么样的奖励等
1 alien_0 = {'color':'green','point': 5}
2 new_points = alien_0['point']
3 print("You just earned " + str(new_points) + ' points!')
4
5 #运行结果是:
6 You just earned 5 points!
添加键-值对
字典是一种动态结构,类似于列表所以是可以修改的。
要想添加键-值对,可以依次制定字典名、用方括号括起的键和向关联的值,例如:
1 alien_0 = {'color':'green','point': 5}
2 print(alien_0)
3
4 alien_0['x_position'] = 0
5 alien_0['y_position'] = 25 #方括号内的是键,等式后面的是值
6 print(alien_0)
7
8 #运行结果:
9 {'point': 5, 'color': 'green'}
10 {'point': 5, 'x_position': 0, 'color': 'green', 'y_position': 25}
创建一个空字典:
先使用花括号来定义一个空的字典,然后再对字典进行添加内容,例如:
1 alien_0 = {}
2 alien_0['color'] = 'green'
3 alien_0['point'] = 5
4 print(alien_0)
5
6 #结果为:
7 {'point': 5, 'color': 'green'}
修改字典中的值,
要修改字典内的键值对应关系,可以使用:字典名['键'] = 值,来定义
1 alien_0['color'] = 'red'
2 alien_0['point'] = 10
上面的代码将原来的alien_0中的颜色和得分的值都进行了修改
下面使用if-elif-else来对字典里的值进行修改:
1 1 alien_0 = {'x_position':0,'y_position':25,'speed':'medium'}
2 2 print('original x-position: ' + str(alien_0['x_position']))
3 3
4 4 if alien_0['speed'] == 'slow': #对当前速度进行判断
5 5 x_increment = 1
6 6 elif alien_0['speed'] == 'medium':
7 7 x_increment = 2
8 8 else:
9 9 x_increment = 3
10 10 alien_0['x_position'] = alien_0['x_position'] + x_increment #定义新的位置
11 11 print("new_x-position: " + str(alien_0['x_position']))
12 #输出的结果为:
13 original x-position: 0
14 new_x-position: 2
删除键-值对:
使用命令del 字典名['键名']可以删除字典中的一个键-值对
1 alien_0 = {}
2 alien_0['color'] = 'green'
3 alien_0['point'] = 5
4 print(alien_0)
5 del alien_0['point'] #删除键-值对
6 print(alien_0)
7 #运行结果为:
8 {'point': 5, 'color': 'green'}
9 {'color': 'green'}
由类似对象组成的字典:
1 favourite_languages = {
2 'jen' : 'python',
3 'sara' : 'C',
4 'edward' : 'ruby',
5 'phil' : 'python',
6 }
7 print("Sara's favourite language is " +
8 favourite_languages['sara'].title() +
9 ".")
10 #运行结果:
11 Sara's favourite language is C
确定使用多行字典时,输入花括号后按回车,将后一个花括号放入下一行,然后输入键-值对,并且在每一个键值对后加逗号,结束后保证括号在下一行并且缩进四个空格,建议在最后一个键值对后也加一个逗号,方便以后增加键值对
遍历字典:
python的字典可能包含几个键对值也可能包含好几百万个键对值,有多种方法对字典内的值进行遍历
第一种:使用for循环来遍历,需要声明两个变量,可以使用任何名称命名这两个变量
10 usr = {
11 'user_name': 'efermi',
12 'first': 'enrico',
13 'last': 'fremi'
14 }
15 for key,value in usr.items(): #items()是一个方法,还有keys()等
16 print('\nKey: ' + key)
17 print('value: ' + value)
18
19 #运行结果为:
20 Key: first
21 value: enrico
22
23 Key: last
24 value: fremi
25
26 Key: user_name
27 value: efermi
注:在遍历字典的时候变量尽量使用对应的名称,会比较好理解,也易于阅读
如果遍历字典的时候只需要输出键或者值的话可以在使用keys(),或者不加,使用keys()会使得代码更易于理解
favourite_languages = {
'jen' : 'python',
'sara' : 'C',
'edward' : 'ruby',
'phil' : 'python',
}
for name in favourite_languages.keys():
print(name.title())
#运行结果为:
Edward
Phil
Sara
Jen
注:如果只需要输出值则是使用values()命令
遍历字典的时候会默认遍历所有的值,循环中可以使用当前的键来访问与之相关联的值
1 favourite_languages = {
2 'jen' : 'python',
3 'sara' : 'C',
4 'edward' : 'ruby',