字典
字典是一系列的键值对,每个键都与一个值相关联,你可以使用键来访问相关联的值。与键相关联的值可以是数、字符串、列表乃至字典。
- 创建一个字典
alien_0 = {} #空字典
alien_0 = {'color' = 'green', 'point' = 5}
- 修改键值
alien_0['color'] = 'yellow'
- 添加键值对
alien_0['X_position'] = 0
- 删除键值对
del alien_0['X_position']
- 定义多行字典
favorite_languages = {
'jen': 'python',
'sarah': 'C',
'edward': 'ruby',
'phil': 'python'
}
- 使用get()来访问值
当使用放在括号内的键值从字典中获取值时,若指定的键不存在,会报KeyError。
使用get()方法可以在指定的键不存在时返回一个默认值,从而避免这样的错误。
alien_0 = {'color' = 'greeb', 'speed' = 'slow'}
#get()第一个参数用于指定键,第二个参数为指定的键不存在时要返回的值,若第二个参数不填,则默认键不存在时返回None。
point_value = alien_0.get('point','No point value assigned.')
- 遍历所有键值对
user_0 = {
'username': 'efermi'
'first': 'enrico'
'last': 'fermi'
}
#用for循环声明两个变量,用于存储键值对中的键和值,这两个变量可以使用任意名称。
for key,value in user_0.items():
print(f'\nKey:{key}')
print(f'Value:{value}')
- 遍历字典中的所有键
#以下两种方法输出一样,使用keys()方法让代码更容易理解,keys()返回一个列表,包含字典中所有键
for key in user_0:
print(key.title())
for key in user_0.keys():
print(key.title())
- 检查键是否在字典中
if 'age' in user_0.keys():
print('age in user_0')
if 'age' not in user_0.keys():
print('age not in user_0')
- 按特定顺序遍历字典中的所有键
遍历字典时是按照插入的顺序返回其中的元素。可以使用sorted()来获得按特定顺序排列的键列表的副本。
for name in sorted(favorite_lanuages.keys()):
print(f'{name.title()}, thank you for taking the poll.')
11.遍历字典中的所有值
#列出所有值,不考虑是否重复
for language in favorite_langeages.values():
print(language)
#使用set(),让python 找出列表中独一无二的元素,并使用这些元素来创建一个集合。
for language in set(favorite_laguages.values())
- 嵌套——列表中存储字典
alens = []
#创建30个绿色机器人
for alien_number in range(30):
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens.append(new_alien)
#将前三个外星人中的绿色外星人改为黄色外星人,将黄色外星人改为红色外星人
for alien in aliens[: 3]:
if alien['color'] == 'green':
alien['color'] = 'yellow'
alien['speed'] = 'medium'
alien['points'] = 10
elif alien['color'] == 'yellow':
alien['color'] = 'red'
alien['speed'] = 'fast'
alien['points'] = 15
#显示前5个外星人
for alien in aliens[:5]:
print(alien)
- 嵌套——在字典中存储列表
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['C'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
for name, languages in favorite_language.items():
print(f'\n{name}'s favorite languages is:')
for language in languages:
print(language)
- 在字典中存储字典
users = {
'aeinstein':{
'fisrt': 'albert',
'last': 'einstein',
'location': 'princeton'
},
'mcurie':{
'fisrt': 'marie',
'last': 'curie',
'location': 'paris'
}
}
for user_name, user_info in users.items():
full_name = user_info['first'] + user_info['last']
location = user_info['location']
print(f'{user_name}的全名是{full_name},住址为{location}')