关键记忆点:

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'])

Python第五课——字典_键值对

二、使用字典

1、认识字典

就是用{}内一系列键值对(>=0)表示,键值对关联的可以是数、字符串、列表、字典。

{键:值,键:值,...}

字典名[键]  将返回 字典中与键相关的值

2、添加键值对

Python第五课——字典_键值对_02

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)

Python第五课——字典_字典_03

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)

Python第五课——字典_字符串_04

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)

Python第五课——字典_字符串_05

三、遍历字典

1、遍历所有键值对

favorite_languages={
    'jen':'python',
    'bob':'c',
    'david':'rust',
    'justin':'java',
}
for name,language in favorite_languages.items():#items()返回键和键值即一个键值对列表
    print(name)
    print(language)

Python第五课——字典_python_06

Python第五课——字典_字符串_07

favorite_languages={
    'jen':'python',
    'bob':'c',
    'david':'rust',
    'justin':'java',
}
for name,language in favorite_languages.items():
    print(f"\nname")#\n用于换行
    print(language)

Python第五课——字典_python_08

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}")

Python第五课——字典_键值对_09

3、按特定的顺序遍历字典中的所有键

favorite_languages={
    'jen':'python',
    'bob':'c',
    'david':'rust',
    'justin':'java',
}
for name in sorted(favorite_languages.keys()):#对键值从小到大排序
    print(name.title())

Python第五课——字典_字典_10

4、遍历字典中的所有值

favorite_languages={
    'jen':'python',
    'bob':'c',
    'david':'rust',
    'justin':'java',
}
for language in sorted(favorite_languages.values()): # .values()
    print(language.title())

Python第五课——字典_键值对_11

favorite_languages={
    'jen':'python',
    'bob':'c',
    'david':'rust',
    'justin':'python',
}
for language in set(favorite_languages.values()):#set可剔除重复项
    print(language.title())

Python第五课——字典_键值对_12

四、集合与字典

字典有键值对,集合没有,虽然都是用花括号括起来的

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())

Python第五课——字典_字符串_13

五、嵌套

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)

Python第五课——字典_字典_14

#创建一个存储外星人的空列表
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)}")#总共的外星人个数

Python第五课——字典_字符串_15

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}")#打印字典中的列表,表达有哪些佐料

Python第五课——字典_python_16

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()}")

Python第五课——字典_字典_17

3、在字典中存储字典

users={
    'bob':{
        'one':'i',
        'two':'have'
    },
    'alice':{
        'three':'a',
        'four':'one'
    },
}
for number,word in users.items():
    print(f"{number} said {word}")

Python第五课——字典_键值对_18

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']}")

Python第五课——字典_键值对_19