1.字典简单的增删改查操作:
#字典
student={
'name':'Daming','age':12,'sex':'boy'}#定义一个简单的字典,其中两侧是大括号,大括号内目前有三个键-值对,共同定义了学生这个字典
print('初始字典:')
print(student)
print('name: '+student['name'])#输出键’name'对应的数值,注意是student['name']
print('original age: '+str(student['age']))
student['age']=13 #修改键‘age’对应的数值
print('modified age: '+str(student['age']))
student['hobby']='reading' #添加键值对
print('添加键值对hobby后的字典')
print(student)#输出字典
del student['age']#删除键值对age,删除的键值对永远的消失了
print('删除键值对age后的字典')
print(student)
输出效果:
初始字典:
{
'name': 'Daming', 'age': 12, 'sex': 'boy'}
name: Daming
original age: 12
modified age: 13
添加键值对hobby后的字典
{
'name': 'Daming', 'age': 13, 'sex': 'boy', 'hobby': 'reading'}
删除键值对age后的字典
{
'name': 'Daming', 'sex': 'boy', 'hobby': 'reading'}
2.由类似对象组成的字典:
思考:如果要统计每个学生数学的分数,如何借助实现?
student_math={
'Daming':87,#缩进四格
'LingLing':112,#缩进四格
'Tom':99,
}#定义一个简单的字典,其中两侧是大括号(各占一行,并且第二个大括号缩进四格),大括号内目前有三个键-值对,共同定义了学生数学成绩这个字典,注意这里的格式
print('初始字典:')
print(student_math)
print('the score of Daming: '+str(student_math['Daming']))#输出键’name'对应的数值,注意是student['name']
student_math['LingLing']+=10
print('修改后的字典')
print(student_math)
for name,score in student_math.items():#遍历字典时,返回的键值对顺序和存储顺序不一定相同
print('name: '+name+' score: '+str(score))
for name, score in student_math.items():
if score<=90:
print('输出成绩小于等于90分同学姓名:')
print(name.upper())
输出效果:
初始字典:
初始字典:
{
'Daming': 87, 'LingLing': 112, 'Tom': 99}
the score of Daming: 87
修改后的字典
{
'Daming': 87, 'LingLing': 122, 'Tom': 99}
name: Daming score: 87
name: LingLing score: 122
name: Tom score: 99
输出成绩小于等于90分同学姓名:
DAMING
Process finished with exit code 0
3.仅遍历字典的键
#随机遍历字典:
student_math={
'Daming':87,#缩进四格
'LingLing':112,#缩进四格
'Tom':99,
}#定义一个简单的字典,其中两侧是大括号(各占一行,并且第二个大括号缩进四格),大括号内目前有三个键-值对,共同定义了学生数学成绩这个字典,注意这里的格式
print('初始字典:')
print(student_math)
#让python提取字典student_math中的所有键,并依次将它们存储到变量name中
for name in student_math.keys():
print('name:'+name)
#遍历字典时候,会默认遍历所有的键
for name in student_math:
print('name1:'+name)
#顺序遍历所有的键
for name in sorted(student_math.keys()):
print('顺序遍历:'+name)
初始字典:
{
'Daming': 87, 'LingLing': 112, 'Tom': 99}
name:Daming
name:LingLing
name:Tom
name1:Daming
name1:LingLing
name1:Tom
顺序遍历:Daming
顺序遍历:LingLing
顺序遍历:Tom
4.遍历字典的值
#遍历字典的值:
student_math={
'Daming':87,#缩进四格
'LingLing':112,#缩进四格
'Tom':112,
}#定义一个简单的字典,其中两侧是大括号(各占一行,并且第二个大括号缩进四格),大括号内目前有三个键-值对,共同定义了学生数学成绩这个字典,注意这里的格式
print('初始字典:')
print(student_math)
#让python提取字典student_math中的所有值,并依次将它们存储到变量score中
for score in student_math.values():
print('score:'+str(score))
初始字典:
{
'Daming': 87, 'LingLing': 112, 'Tom': 112}
score:87
score:112
score:112
这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。集合类似于列表,但每个元素都必须是独一无二的:
student_math={
'Daming':112,#缩进四格
'LingLing':112,#缩进四格
'Tom':99,
}#定义一个简单的字典,其中两侧是大括号(各占一行,并且第二个大括号缩进四格),大括号内目前有三个键-值对,共同定义了学生数学成绩这个字典,注意这里的格式
print('初始字典:')
print(student_math)
#让python提取字典student_math中的所有值,并依次将它们存储到变量score中
for score in student_math.values():
print('the score of students, it maybe not unique :'+str(score))
#处理重复的元素,利用set
print('独一无二的元素:')
for score in set(student_math.values()):
print(score)#输出列表中存在的元素,这里输出的元素都是独一无二的
初始字典:
{
'Daming': 112, 'LingLing': 112, 'Tom': 99}
the score of students, it maybe not unique :112
the score of students, it maybe not unique :112
the score of students, it maybe not unique :99
独一无二的元素:
112
99
rivers={
'nile':'egypt',
'changjiang':'China',
'yellow_river':'China',
}
#打印河流名称和国家之间的对应关系:
print('打印河流名称和国家之间的对应关系:')
for river_name,country_name in rivers.items():
print('The '+river_name.title()+' runs through '+country_name.title())
#打印河流名称(键),随机遍历
print('打印河流名称(键),随机遍历:')
for river_name in rivers:
print('river_name: '+river_name)
#打印国家名称,会有重复元素
print('打印国家名称,会有重复元素:')
for country_name in rivers.values():
print('country_name: '+country_name)
打印河流名称和国家之间的对应关系:
The Nile runs through Egypt
The Changjiang runs through China
The Yellow_River runs through China
打印河流名称(键),随机遍历:
river_name: nile
river_name: changjiang
river_name: yellow_river
打印国家名称,会有重复元素:
country_name: egypt
country_name: China
country_name: China
Process finished with exit code 0
6-6 调查:
favoriate_languanges={
'Daming':'English',
'LingLing':'Chinese',
'Tom':'French',
}
#打印姓名和语言之间的对应关系:
print('问卷情况:')
for name,language in favoriate_languanges.items():
print(name.title()+' likes '+language.title())
persons_name=['Daming','huahua','qiuqiu']
print('问卷名单:')
for name in persons_name[:]:
print(name)
print('问卷填写情况反馈:')
for name in persons_name:
if name in sorted(favoriate_languanges):
print(name.title()+' 谢谢您的合作~')
else:
print(name.title()+' 请尽快完成问卷~')
问卷情况:
Daming likes English
Lingling likes Chinese
Tom likes French
问卷名单:
Daming
huahua
qiuqiu
问卷填写情况反馈:
Daming 谢谢您的合作~
Huahua 请尽快完成问卷~
Qiuqiu 请尽快完成问卷~
Process finished with exit code 0