第六章
6.1 一个简单的字典
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])
6.2 使用字典
字典是一系列的键值对,每个键都与一个值相关联,可以使用键来访问与之相关联的值。
与键相关联的值可以是数字,字符串,列表乃至字典。
在Python中,字典用放在花括号 {} 中的一系列键值对表示。
键和值之间用冒号分隔,而键值对之间用逗号分隔。
例如:
alien_0 = {'color':'green','points':5}
6.2.1 访问字典的中的值
要获取与键相关联的值,可依次指定字典名和放在方括号内的键
例如:
alien_0 = {'color': 'green'}
print(alien_0['color'])
6.2.2 添加键值对
字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指定字典名,用方括号括起来的键和相关联的值。
例如:
alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
❶ alien_0['x_position'] = 0
❷ alien_0['y_position'] = 25
print(alien_0)
6.2.3 先创建一个空字典
在创建了空字典后,可使用以下方式添加键值对
例如:
alien_0 = {}
alien_0['color'] = 'green'
alien_0['points'] = 5
6.2.4 修改字典中的值
要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。
例如:
alien_0 = {'color': 'green', 'points': 5}
alien_0['color'] = 'yellow'
print(alien_0)
结果:
alien_0 = {'color': 'yellow', 'points': 5}
6.2.5 删除键值对
对于字典中不再需要的信息,可使用del 语句将相应的键—值对彻底删除。
例如:
alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
❶ del alien_0['points']
print(alien_0)
注意:删除的键值对永久消失
6.2.6 有类似对象组成的元组
对于字典来说,可以使用字典来存储众多对象的同一种信息。
例如:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
对于pritn()语句,可以使用写在多行
例如:
❶ print("Sarah's favorite language is " +
❷ favorite_languages['sarah'].title() +
❸ ".")
6.3 遍历字典
对于字典的遍历,可以遍历字典键-值对,字典的键,字典的值
6.3.1 遍历所有的键值对
如要遍历字典的键-值对,需使用方法item()来获取字典的键-值对。
例如:
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
❶ for key, value in user_0.items():
❷ print("\nKey: " + key)
❸ print("Value: " + value)
注意:即便遍历字典时,键-值对的返回顺序也与存储顺序不同
6.3.2 遍历字典中的所有键
如果要访问字典中的键,使用方法key()来访问。
例如:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
❶ for name in favorite_languages.keys():
print(name.title())
输出:
Jen
Sarah
Phil
Edward
注意:也可将for name in favorite_languages.keys(): 换为for name in favorite_languages:
6.3.3 按顺序遍历字典中的所有键
在字典中,要字典按特定的顺序返回所有的键,可以使用sorted()函数来对字典的键排序
例如:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for name in sorted(favorite_languages.keys()):
print(name.title() + ", thank you for taking the poll.")
6.3.4 遍历字典中的所有值
在字典中,如果要遍历字典中的值,可以使用values()来获取字典中的值
favorite_languages = { _
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print("The following languages have been mentioned:")
for language in favorite_languages.values():
print(language.title())
6.4 嵌套
将字典存储在列表中或将列表存储到字典中,或将字典存储到字典中,称之为嵌套。
6.4.1 字典列表
字典列表:就是将字典嵌套到列表上。
例如:
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
❶ aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
6.4.2 在字典中存储列表
在字典中存储列表,每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表
示例如下:
pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese'], }
# 概述所点的比萨
❷ print("You ordered a " + pizza['crust'] + "-crust pizza " +
"with the following toppings:")
❸ for topping in pizza['toppings']:
print("\t" + topping)
6.4.3 在字典中存储字典
示例如下:
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
❶ for username, user_info in users.items():
❷ print("\nUsername: " + username)
❸ full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
❹ print("\tFull name: " + full_name.title())
print("\tLocation: " + location.title())
6.5 小结
在本章中
- 介绍了如何定义字典。
- 介绍了如何使用在存储在字典中的信息。
- 介绍了如何访问和修改在字典中的元素,以及如何遍历字典中的所有信息。
- 介绍了如何遍历字典中的键-值对,所有的键和所有的值。
- 介绍了如何在字典中嵌套列表,如何在列表中嵌套字典,如何在字典中嵌套字典