6. 字典
6.1 字典,存储键值对
1.访问字典:字典名+键,返回与键相关联的值 print(alien['color'])
2.添加键值对:alien['color'] = 'green'
键值对的添加顺序与返回的顺序可以不一样,字典不关注顺序,只关心键和值的关联关系
可以先定义一个空字典,再添加键值对
3.修改字典中的值alien['color'] = 'red'
4.删除键值对 : del语句 `del alien[‘points’]
alien = {'color':'red','points':5}
print(alien['color']) #访问字典
alien['x_position']=0
alien['y_position']=25
print(alien) #添加键值对
alien['color']='green'
print(alien['color']) #修改字典中的值
del alien["points"] #删除键值对
print(alien)
外星人向右移动 练习
alien['speed']='medium'
print('Original x-position:'+str(alien['x_position']))
if alien['speed']=='slow':
x_increment = 1
elif alien['speed']=='medium':
x_increment = 2
else:
x_increment = 3
alien['x_position']=alien['x_position']+x_increment
print('Now x-position:'
+str(alien['x_position']))
6.2 遍历字典
- 遍历所有键值对 :声明两个变量用于存储键值对中的键和值 items()
for k,v in alien.items():
print(k)
print(v)
- 遍历所有的键 :方法keys() 返回一个列表,可以对返回的列表进行排序,获得按顺序遍历字典中的键
for name in sorted(alien.keys()):
print(name)
- 遍历字典中的所有值: 方法values() 返回一个值列表
剔除值列表中的重复项,使用集合set
for value in set(alien.values()):
print(value)
练习
6.3 嵌套
- 在列表中嵌套字典
生成30个外星人,并将其信息存储在列表中
aliens = []
for number in range(30):
new_alien = {'color':'red','points':5}
aliens.append(new_alien)
print('共创建的外星人个数为:'+ str(len(aliens)))
for alien in aliens[:3]:
if alien['color'] == 'red':
alien['color'] ='yellow'
alien['points'] =10
for alien in aliens[:5]:
print(alien)
- 在字典中嵌套列表
可以将多个值存储在列表中,再将列表关联到对应的键,即键对应的不是大哥值,而是一个列表。
顾客点的披萨配料有多种
pizza = {
'crust':'thick',
'toppings':['mushroom','extra cheese'],
}
print('you order a'+ pizza['crust']+'with the following toppings:')
for topping in pizza['toppings']:
print('\t'+topping)
f_languages = {
'jen':['python','c'],
'sarah':['c'],
'sun':['java','c'],
}
for name,languages in f_languages.items():
if len(languages) == 1:
print(name)
print(languages)
else:
print(name)
for language in languages:
print('\n'+language)
- 在字典中嵌套字典
例如不同用户关联相应的用户信息
users = {
'aein':{
'first':'albert',
'last':'einstein',
},
'mcurie':{
'first':'marie',
'last':'curie',
}
}
for n,user_into in users.items():
print('\n'+n)
print(user_into['first'])
print(user_into['last'])