关键记忆点:
alien_0={'cguolor':'green','points':5}#键和值
print(alien_0['color'])#打印键值
del alien_0['x_position']#删除键值对
language=favorite_languages.get('bob',)#取值
sorted(favorite_languages.keys()#排序
for name,language in favorite_languages.items():#items()返回键和键值即一个键值对列表
print(name)favorite_languages={'a','b','c','c'}#这是集合
print(language)favorite_languages={'a','b','c','c'}#这是集合
for name in favorite_languages.keys():#访问键
for value in favorite_languages.values():#访问键值
for name in sorted(favorite_languages.keys()):#对键值从小到大排序
for language in set(favorite_languages.values()):#set可剔除重复项
favorite_languages={'a','b','c','c'}#这是集合
alien_0={'color':"green","point":5}
alien_1={'color':"red","point":35}
alien_2={'color':"black","point":53}
aliens=[alien_2,alien_1,alien_0]#字典列表
for alien in aliens:
print(alien)
#存储顾客所点pizza的信息,在字典中存储列表
pizza={
'crust':'thick',#厚厚的披萨
'topping':['mushroom','extra cheese'],#披萨上的佐料,一个键关联多个值就用列表
}
#描述顾客点的披萨
print(f"your pizza is {pizza['crust']}")#你的披萨厚
for topping in pizza['topping']:
print(f",including{topping}")#打印字典中的列表,表达有哪些佐料
#在字典中存储字典
users={
'bob':{
'one':'i',
'two':'have'
},
'alice':{
'three':'a',
'four':'one'
},
}
for number,word in users.items():
print(f"{number} said {word}")
一、例子
alien_0={'cguolor':'green','points':5}#字典存储了外星人的颜色和分数
print(alien_0['color'])
print(alien_0['points'])
二、使用字典
1、认识字典
就是用{}内一系列键值对(>=0)表示,键值对关联的可以是数、字符串、列表、字典。
{键:值,键:值,...}
字典名[键] 将返回 字典中与键相关的值
2、添加键值对
alien_0={'color':'green','points':5}#字典存储了外星人的颜色和分数
print(alien_0)
alien_0['x_position']=0
alien_0['y_position']=25#直接追加在字典里,元素的排列顺序与添加顺序相同
print(alien_0)
3、创建空字典
alien_0={}
alien_0['color']='green'
alien_0['points']=5
alien_0['x_position']=0
print(alien_0)
4、修改字典中的值
alien_0={}
alien_0['color']='green'
alien_0['points']=5
alien_0['x_position']=0
print(alien_0)
alien_0['color']='red'#修改键值
print(alien_0)
alien_0={'x_position':0,'y_position':25,'speed':'medium'}
print(f"original position:{alien_0['x_position']}")
if alien_0['speed']=='slow':
x_increment=1
elif alien_0['speed']=='medium':
x_increment=2
else:
x_increment=3
alien_0['x_position']=alien_0['x_position']+ x_increment
print(f"New position:{alien_0['x_position']}")
5、删除键值对
alien_0={'x_position':0,'y_position':25,'speed':'medium'}
print(alien_0)
del alien_0['x_position']#删除键值对
print(alien_0)
6、由类似的对象组成的字典
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
language=favorite_languages['bob'].title()
print(f"bob's favorite is {language}.")
7、使用get()来访问值
提取字典里不存在的键,会发生错误,所以使用get()能让这种错误返回一个默认值。get()方法的第一个参数用于指定键,是必不可少的,第二个参数为当键不存在时要返回的值,是可选的。
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
language=favorite_languages.get('bob',)#后面可不写
print(language)
language=favorite_languages.get('bob','no point value assigned')#有键值则返回键值
print(language)
language=favorite_languages.get('sd','no point value assigned')#无键值则返回默认值
print(language)
language=favorite_languages.get('sd',)#未指定默认返回值则返回none
print(language)
三、遍历字典
1、遍历所有键值对
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
for name,language in favorite_languages.items():#items()返回键和键值即一个键值对列表
print(name)
print(language)
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
for name,language in favorite_languages.items():
print(f"\nname")#\n用于换行
print(language)
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
for name,language in favorite_languages.items():
print(f"{name}'s favorite language is {language}\n")#更明了
2、遍历所有键
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
for name in favorite_languages.keys():
print(name.title())
等同于
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
for name in favorite_languages:#省略.keys()
print(name.title())
举例:对某个朋友打印页数消息
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
friends=['bob','jj']
for name in favorite_languages:
print(f"hello,{name.title()}")
if name in friends:
language=favorite_languages[name].title()
print(f"i konw you love {language}")
3、按特定的顺序遍历字典中的所有键
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
for name in sorted(favorite_languages.keys()):#对键值从小到大排序
print(name.title())
4、遍历字典中的所有值
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'java',
}
for language in sorted(favorite_languages.values()): # .values()
print(language.title())
favorite_languages={
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'python',
}
for language in set(favorite_languages.values()):#set可剔除重复项
print(language.title())
四、集合与字典
字典有键值对,集合没有,虽然都是用花括号括起来的
favorite_languages={#字典
'jen':'python',
'bob':'c',
'david':'rust',
'justin':'python',
}
for language in set(favorite_languages.values()):#set可剔除重复项
print(language.title())
favorite_languages={'a','b','c','c'}#这是集合
for language in set(favorite_languages):#set可剔除重复项
print(language.title())
五、嵌套
1、字典列表
alien_0={'color':"green","point":5}
alien_1={'color':"red","point":35}
alien_2={'color':"black","point":53}
aliens=[alien_2,alien_1,alien_0]#字典列表
for alien in aliens:
print(alien)
#创建一个存储外星人的空列表
aliens=[]
#创建30个绿色的外星人
for alien_number in range(30):
new_alien={'color':'green','points':5,'speed':'slow'}
aliens.append(new_alien)
#显示前5个外星人
for alien in aliens[:5]:
print(alien)
print(f"total number of aliens:{len(aliens)}")#总共的外星人个数
2、在字典中存储列表
#存储顾客所点pizza的信息
pizza={
'crust':'thick',#厚厚的披萨
'topping':['mushroom','extra cheese'],#披萨上的佐料,一个键关联多个值就用列表
}
#描述顾客点的披萨
print(f"your pizza is {pizza['crust']}")#你的披萨厚
for topping in pizza['topping']:
print(f",including{topping}")#打印字典中的列表,表达有哪些佐料
favorite_languages={#字典
'jen':['python','ko'],
'bob':'c',
'david':'rust',
}
for name,languages in favorite_languages.items():#set可剔除重复项
print(f"{name},")
for language in languages:
print(f"\t{language.title()}")
3、在字典中存储字典
users={
'bob':{
'one':'i',
'two':'have'
},
'alice':{
'three':'a',
'four':'one'
},
}
for number,word in users.items():
print(f"{number} said {word}")
users={
'bob':{
'one':'i',
'two':'have'
},
'alice':{
'one':'love',
'two':'you'
},
}
for number,word in users.items():
print(f"{number} said {word['one']} {word['two']}")