在Python中,字典是一系列的键—值对,,每个键都与一个值相关联,你可以通过键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表、乃至字典。事实上可以将任何Python对像用作字典的值。
键—值对是两个相关联的值,指定键时,Python将返回与之相关联的值,键和值之间用冒号隔开,而键—值对之间用逗号隔开。在字典中可以存储任意多个键—值对。
如下创建一个简单的字典,文件名boy.py
1 boy = {'lastName':'Ailun','firstName':'Bob','age':'25','city':'Beijing'}
(1) 访问字典中的值
要获取与键相关的值,可以依次指定子弹名和放在方括号内的键,也就是可以通过键来访问与键相关联的值
在上述例子中,键分别为lastName,firstName,age,city
下面分别获取lastName,firstName,age,city四个键对应的值:
1 >>> boy
2 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': '25', 'city': 'Beijing'}
3 >>> boy['lastName']
4 'Ailun'
5 >>> boy['firstName']
6 'Bob'
7 >>> boy['age']
8 '25'
9 >>> boy['city']
10 'Beijing'
11 >>>
(2) 添加键—值对
下面在字典中添加两个键,分别为job和salary:
1 >>> boy
2 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': '25', 'city': 'Beijing'}
3 >>> boy['job']='IT'
4 >>> boy
5 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': '25', 'city': 'Beijing', 'job': 'IT'}
6 >>> boy['salary']='15000'
7 >>> boy
8 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': '25', 'city': 'Beijing', 'job': 'IT', 'salary': '15000'}
9 >>>
添加键值可以先创建空字典,然后再在字典中添加键—值对,如下所示
>>> alien_0 = {}
>>> alien_0['color'] = 'green'
>>> alien_0['point'] = 5
>>> alien_0
{'color': 'green', 'point': 5}
>>>
(3) 修改字典中的值
如将上述boy字典的age键值改为26,代码如下所示:
1 >>> boy
2 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': '25', 'city': 'Beijing', 'job': 'IT', 'salary': '15000'}
3 >>> boy['age'] = 26
4 >>> boy
5 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'city': 'Beijing', 'job': 'IT', 'salary': '15000'}
6 >>>
(4) 删除键—值对
删除键—对有两种方式,第一种是使用del语句,第二种是使用pop函数,
1、如使用del语句删除city键及其相关联的值,代码如下所示
1 >>> boy
2 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'city': 'Beijing', 'job': 'IT', 'salary': '15000'}
3 >>> del boy['city']
4 >>> boy
5 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'job': 'IT', 'salary': '15000'}
6 >>>
2、使用pop函数删除city键及其相关联的值,代码如下所示
1 >>> boy['city']='Beijing'
2 >>> boy
3 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'job': 'IT', 'salary': '15000', 'city': 'Beijing'}
4 >>> boy.pop('city')
5 'Beijing'
6 >>> boy
7 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'job': 'IT', 'salary': '15000'}
8 >>>
(5) 字典的遍历
要编写用于字典遍历的for循环,可以声明两个变量用来存储键—值对中的键和值,如下所示
1 >>> boy
2 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'job': 'IT', 'salary': '15000'}
3 >>> for k, v in boy.items():
4 print(k,v)
5
6
7 lastName Ailun
8 firstName Bob
9 age 26
10 job IT
11 salary 15000
12 >>>
代码中的items()函数的作用是以列表的形式返回可遍历的(键,值)元组数组
1 >>> boy
2 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'job': 'IT', 'salary': '15000'}
3 >>> boy.items()
4 dict_items([('lastName', 'Ailun'), ('firstName', 'Bob'), ('age', 26), ('job', 'IT'), ('salary', '15000')])
5 >>>
(6) 遍历字典中所有的键
1 >>> boy
2 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'job': 'IT', 'salary': '15000'}
3 >>> for i in boy.keys():
4 print(i)
5
6
7 lastName
8 firstName
9 age
10 job
11 salary
12 >>>
(7) 遍历字典中所有的值
遍历字典中所有的值可以使用方法values(),其返回一个值列表,而不包含任何键,如获取上述boy字典中所有的值,代码如下所示:
1 >>> boy
2 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': 26, 'job': 'IT', 'salary': '15000'}
3 >>> for i in boy.values():
4 print(i)
5
6
7 Ailun
8 Bob
9 26
10 IT
11 15000
12 >>>
(8) 字典的嵌套
有时候需要将一系列字典存储在列表中,或者将列表作为值存储在字典中,这称为嵌套。列表中可以嵌套字典,在字典中嵌套列表,在字典中嵌套字典
1、列表中嵌套字典
1 >>> boy = {'lastName':'Ailun','firstName':'Bob','age':'25','city':'Beijing'}
2 >>> boy1 = {'lastName':'sklen','firstName':'rust','age':'21','city':'tianjin'}
3 >>> boy2 = {'lastName':'tangigle','firstName':'kate','age':'19','city':'shanghai'}
4 >>>
我们创建如上三个字典,现在我们将三个字典添加到一个列表boy3中去,代码如下:
1 >>> boy3=[boy,boy1,boy2]
遍历这个列表,将每个男孩的信息打印出来:
1 >>> for boy_name in boy3:
2 print (boy_name)
3
4
5 {'lastName': 'Ailun', 'firstName': 'Bob', 'age': '25', 'city': 'Beijing'}
6 {'lastName': 'sklen', 'firstName': 'rust', 'age': '21', 'city': 'tianjin'}
7 {'lastName': 'tangigle', 'firstName': 'kate', 'age': '19', 'city': 'shanghai'}
8 >>>
2、字典中存储列表
1 >>> pizza = {'crust':'thick','toppings':['mushroom','extra cheese']}
2 >>> for top in pizza['toppings']:
3 print(top+' ')
4
5
6 mushroom
7 extra cheese
8 >>>
3、字典中存储字典
1 >>> users = {'aeinstein':{},'mcurie':{}}
2 >>> users = {'aeinstein':{'first':'albert','last':'stein','location':'princeton'},'mcurie':{'first':'marie','last':'curie','location':'paris'}}
3 >>> users
4 {'aeinstein': {'first': 'albert', 'last': 'stein', 'location': 'princeton'}, 'mcurie': {'first': 'marie', 'last': 'curie', 'location': 'paris'}}
5 >>> for user_name,user_info in users.items():
6 print('Users_name: ',user_name)
7 print(' '+'Full_name: ',user_info['first'].title()+' '+user_info['last'].title())
8 print(' '+'Location: ',user_info['location'].title())
9
10
11 Users_name: aeinstein
12 Full_name: Albert Stein
13 Location: Princeton
14 Users_name: mcurie
15 Full_name: Marie Curie
16 Location: Paris
17 >>>