前言:访问和修改字典中的信息
6.2 使用字典
字典是一系列键值对,每个键与一个值相关联,值可以是数字、字符串、列表乃至字典,可以是任何Python对象。用放在{}中的一系列键值对表示。
6.2.1 访问值
alien_0 = {'color':'green','points':5}
print(alien_0["color"])
6.2.2 添加键值对
字典是一种动态结构,可随时添加键值对,依次指定字典名、用[]括起来的键和相关联的值。
alien_0 = {'color':'green','points':5}
alien_0['x_position'] = 0
alien_0['y_position'] = 25
Python 不关心键值对的添加顺序,只关心键和值的关联关系。
6.2.4 修改字典里的值
alien_0 = {'color':'green','points':5}
alien_0['color'] = 'yellow'
6.2.5 删除键值对:del语句(永远消失)
alien_0 = {'color':'green','points':5}
del alien_0['points']
6.2.6 由类似对象组成的字典:使用多行来定义
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
6.3 遍历字典
6.3.1 遍历所有键值对:items()
for key, value in alien_0.items():
for key, value in favorite_languages.items():
6.3.2 遍历所有键:keys()
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for name in favorite_languages.keys():
print(name.title())
#按顺序遍历:使用sorted()
for name in sorted(favorite_languages.keys()):
print(name.title())
6.3.4 遍历所有值:values()
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
#不考虑值是否重复
for language in favorite_languages.values():
print(language.title())
#剔除重复值:使用集合set()
for language in set(favorite_languages.values()):
print(language.title())
6.4 嵌套
可以在列表中嵌套字典,在字典中嵌套列表甚至在字典中嵌套字典
#创建一个用于存储外星人的空列表
aliens = []
#创建30个绿色的外星人
for alien_number in range(30):
new_alien = {'color':'green','points':5,'speed':'slow'}
aliens.append(new_alien)
#改变前3个外星人的特征
for alien in aliens[:3]:
if alien['color'] == 'green':
alien['color'] = 'yellow'
alien['speed'] = 'medium'
alien['points'] = 10
#打印前五个外星人
for alien in aliens[:5]:
print(alien)
运行结果:
{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}