前篇:
【毕设记录日记】深度学习|铝型材表面缺陷视觉检测算法:基于Windows系统中的Python环境配置基础:Python3、终端测试、Visual Studio2019环境配置_SylviaMiller的博客-CSDN博客
【毕设记录日记】深度学习|铝型材表面缺陷视觉检测算法:Python基础内容笔记整理1:环境基本注意事项、变量及简单数据类型、列表_SylviaMiller的博客-CSDN博客
【毕设记录日记】深度学习|铝型材表面缺陷视觉检测算法:Python基础内容笔记整理2:数值列表、遍历列表、元组、PEP8代码格式设置指南_SylviaMiller的博客-CSDN博客
【毕设记录日记】深度学习|铝型材表面缺陷视觉检测算法:Python基础内容笔记整理3:条件测试、简单if语句、复合if语句_SylviaMiller的博客-CSDN博客
1 使用字典
(1)字典是一系列键值对。
(2)可以使用键来访问与之相关联的值。
(3)与键相关联的值可以是数字、字符串、列表、字典,可将任何Python对象用作字典中的值。
(4)字典使用花括号{ }表示,键和值之间使用冒号分隔,而键-值对之间用逗号分隔。
(5)键-值对是两个相关联的值,指定键时,Python将返回相关联的值。
2 访问字典中的值
(1)指定字典名和放在方括号[ ]中的键。
(2)值为文本带单引号' ',值为数字不带单引号。
(3)输出数字时需要用str()转换为字符串,再与字符串一起输出。
3 添加键-值对
(1)字典是动态结构,可以随时添加键值对。
(2)指定字典名、用方括号括起来的键和相关联的值。
(3)键-值对的排列顺序与添加顺序不同,Python只关心键和值之间的关联关系,不关心键-值对的添加顺序。
(4)可以创建空字典再向其中添加键值对,使用字典来存储用户提供的数据或在编写能自动生成大量键-值对的代码时,通常都要先定义一个空字典。
4 修改字典中的值
(1)指定字典名、用方括号括起的键以及与该键相关联的新值。
5 删除键-值对
(1)del语句将相应键值对彻底删除(永久性删除)。
(2)del语句需要指定字典名、要删除的键。
6 由类似对象组成的字典
该字典存储众多对象的同一种信息(即键是不同的对象,但值是同一类信息)。
7 遍历字典
遍历字典有多种方式:遍历字典的所有键值对、键或值。
7.1 遍历所有的键-值对
(1)适用于:字典存储不同键的同种类信息(值)。
(2)使用for循环遍历字典,声明两个变量,一个用于存储键-值对中的键和值,对于这两个变量可以使用任何名称。
(3)方法items():返回一个键值对列表,for循环依次将每个键值对存储到指定的两个变量中。
7.2.1 遍历字典中的所有键
(1)适用于:不需要使用字典中的值。
(2)使用for循环遍历字典,声明一个变量即可,存储键值对中的键,对于这个变量可以使用任何名称。
(3)方法keys():keys()并非只能用于遍历,其返回一个包含字典中所有键的列表,除了遍历字典得到所有键以外,还可以合适某个键是否在这个列表(字典)当中。
#核实元素element是否在字典dictionary中,若不在则打印对应文本
if 'element' not in dictionary.keys():
print("The element is not in this dictionary!")
7.2.2 按顺序遍历字典中所有的键
(1)适用于:需要获取字典元素的顺序时。
(2)使用for循环对返回的键进行排序,可以使用函数sorted()来获得按特定顺序排列的键列表表的副本。
(3)函数sorted():见列表篇
7.3 遍历字典中的所有值
(1)适用于:需要只获取字典的值时。
(2)使用for循环遍历字典,声明一个变量即可,存储键值对中的值,对于这个变量可以使用任何名称。
(3)方法values():返回一个值列表,不包含任何键。
(4)集合set():对于包含重复元素的列表调用set(),让Python找出列表中独一无二的元素,并使用这些元素来创建一个集合。
8 嵌套
将一系列字典存储在列表里,或将列表作为值存储在字典中,称为嵌套。
可以在(1)列表中嵌套字典(2)在字典中嵌套列表(3)在字典中嵌套字典
8.1 字典列表(在字典中嵌套列表)
(1)适用于:列表中包含着大量字典,每个字典存储着特定对象的众多信息,列表中每个字典结构都相同,可遍历这个列表并使用相同方法处理字典。
(2)range(n):可以返回一系列数字,用在for循环中主要用于定义循环会运行多少次。
#该循环会运行n次
for element in range(n):
print(".")
(3)字典列表中的字典都具有相同特征,但Python认为每个字典都是独立的,所以可以独立修改每个字典。
(4)可以使用if-elif-else结构修改字典内容。
(5)示例:为网站每个用户创建一个字典,并将这些字典存户在一个名为users的列表中。
8.2 在字典中存储列表
(1)适用于:该字典中一个键需要关联多个值,使用字典存储列表可为需要存储的对象添加多个相关描述。
(2)可以在遍历字典的for循环开头加if-else语句,搭配len()函数查看列表长度,若长度为1执行操作1,若长度为2执行操作2……
8.3 在字典中存储字典
(1)适用于:一个字典中每个键、值都是独特的,但最好表示每个个体的字典结构都相同,能够使得嵌套的字典处理起来相对更加容易。
(2)示例:由多个网站用户,每个都有独特的用户名,可以在字典中将用户名作为键,然后将每位用户的信息都存储在一个字典中,并将该字典作为用户名相关联的值。
#对于每位用户都存储了三项信息:名、姓和居住地,为访问这些信息,遍历所有的用户名,并访问每个用户名相关联的信息字典
users={
'aeinstein':{
'first':'albert',
'last':'einstein',
'location':'princeton',
},
'mcurie':{
'first':'marie',
'last':'curie',
'location':'paris',
},
}
for username,user_info in users.items():
print("\nUsername:"+username)
full_name=user_info['first']+" "+user_info['last']
location=user_info['location']
print("\tFull name:"+full_name.title())
print("\tLocation:"+location.title())
9 课后习题
题目都打在注释里了。
#ex6-1 friend
#使用一个字典存储一个朋友的信息,包括:名、姓、年龄和居住的城市
#该字典应包含键first_name、last_name、age和city
friend={'first_name':'Jenne','last_name':'Liu','age':22,'city':"Xi'an"}
#将存储在字典中的每项信息全部打印出来
print("She is my friend,and her name is "+
friend['first_name']+
" "+
friend['last_name']+
","+
"She "+
str(friend['age'])+
" years old"+
","
"and live in "+
friend['city']+
" now."+
"\n")
#ex6-2 favorite_number
#使用一个字典来存储一些人喜欢的数字,想出5个人的名字,将这些名字用作字典中的键
#想出每个人喜欢的一个数字,并将这些数字作为值存储在字典中
favorite_number={
'Ann':5,
'Anne':26,
'Ben':1,
'Benny':21,
'Coco':6,
}
#打印每个人的名字和喜欢的数字
print("Ann:"+
str(favorite_number['Ann'])+
"\n"+
"Anne:"+
str(favorite_number['Anne'])+
"\n"+
"Ben:"+
str(favorite_number['Ben'])+
"\n"+
"Benny:"+
str(favorite_number['Benny'])+
"\n"+
"Coco:"+
str(favorite_number['Coco'])+
"\n")
#ex6-3 vocabulary
#创建一个字典,存储5个学过的词汇,将其用作词汇表中的键,并将它们的含义作为值存储在词汇表中
vocabulary={
'a':'one single;any',
'abandon':'give up completely',
'anne':'Queen of England',
'anyone':'any person or people',
'rice':'the grains of this cereal used as food'}
#以整洁的方式打印每个词汇及其含义,先打印词汇,后面加上一个冒号,再打印词汇含义
#在一行打印词汇,再使用换行符(\n),插入一个空行
#在下一行以缩进的方式打印词汇含义
print("a:\n\t"+
vocabulary['a']+
"\n"+
"abandon:\n\t"+
vocabulary['abandon']+
"\n"+
"anne:\n\t"+
vocabulary['anne']+
"\n"+
"anyone:\n\t"+
vocabulary['anyone']+
"\n"+
"rice:\n\t"+
vocabulary['rice']+
"\n")
#ex6-4 vocabulary_2
#将ex6-3中的一系列print语句替换为一个遍历字典中的键和值的循环
for word,paraphrase in vocabulary.items():
print("Word:"+word)
print("Paraphrase:"+paraphrase)
print("\n")
print("________________________________________________________________")
#向列表中添加5个词语,再次运行时将这5个新术语及其含义自动包含在输出中
vocabulary['balance']='remain in a steady position without falling'
vocabulary['cat']='a wild animal of the cat family'
vocabulary['dog']='a wild animal of the dog family'
vocabulary['deal']='take part in commercial trading of a particular commodity'
vocabulary['dawn']='the first appearance of light in the sky before sunrise'
#将新术语包含在输出中
for word,paraphrase in vocabulary.items():
print("Word:"+word)
print("Paraphrase:"+paraphrase)
print("\n")
#ex6-5 river
#创建一个字典,存储三条大河流及其流经的国家
river={
'nile':'egypt',
'yellow river':'china',
'ganges':'india',
}
#使用循环为每条河流打印一条消息
for river_name,country in river.items():
print("The "+river_name.title()+
" runs through "+country.title()+
".")
print("\n")
#使用循环将该字典中每条河流的名字都打印出来
for river_name in river.keys():
print(river_name.title())
print("\n")
#使用循环将该字典包含的每个国家的名字都打印出来
for country in river.values():
print(country.title())
print("\n")
#ex6-6 investigate
favorite_languages={
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
#创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,其他人未包含在字典中
users=['jen','sarah','dannel','edward','phil','coco']
#遍历人员名单
for user_name in users:
#对于已参与调查的人,打印一条消息表示感谢
if user_name in favorite_languages.keys():
print(user_name.title()+",thank you for taking the poll.")
#对于未参与调查的人,打印一条消息邀请他参与调查
if user_name not in favorite_languages.keys():
print(user_name.title()+",please take our poll as soon as possible.")
print("\n")
#ex6-7 friend_2
#基于ex6-1,再创建两个表示人的字典
friend_0={'first_name':'Jenne','last_name':'Liu','age':22,'city':"Xi'an"}
friend_1={'first_name':'Jerry','last_name':'Zhang','age':21,'city':"Xi'an"}
friend_2={'first_name':'Casey','last_name':'Deng','age':21,'city':'Manchester'}
#将这三个字典都存储在一个名为people的列表中
people=[friend_0,friend_1,friend_2]
#遍历这个列表,将其中每个人的信息都打印出来
for friend in people:
print(friend)
print("\n")
#ex6-8 pets
#创建多个字典,对于每个字典都使用一个宠物的名称来命名
Ding={'variety':'British short','host':'Sylvia'}
Ro={'variety':'Muppet','host':'Rodaddy'}
Nine={'variety':'Chinese pastoral cat','host':'Ninemommy'}
#将这些字典存储在一个名为pets的列表中
pets=[Ding,Ro,Nine]
#遍历这个列表,将宠物所有信息都打印出来
for pet in pets:
print(pet)
print("\n")
#ex6-9 favorite_places
#创建名为favorite_places的字典
#将三个人名用作键,对于每个人存储1~3个喜欢的地方
favorite_places={
"Sylvia":['Beijing','Guangzhou'],
"Nana":['Hangzhou'],
"Jenny":['Shanghai','Dalian'],
}
for friend_name,favorite_place in favorite_places.items():
if len(favorite_place)==1:
print("\n"+friend_name.title()+"'s favorite place is:")
for favorite_city in favorite_place:
print("\t"+favorite_city.title())
else:
print("\n"+friend_name.title()+"'s favorite places are:")
for favorite_city in favorite_place:
print("\t"+favorite_city.title())
#ex6-10 favorite_number_2
#基于ex6-2,让每个人可以有更多个喜欢的数字
favorite_numbers={
'Ann':[5,26],
'Anne':[50],
'Ben':[1,21],
'Benny':[5,20],
'Coco':[6],
}
#将每个人的名字和喜欢的数字打印出来
for friend_name,favorite_number in favorite_numbers.items():
if len(favorite_number)==1:
print("\n"+friend_name.title()+"'s favorite number is:")
for favorite_number_2 in favorite_number:
print("\t"+str(favorite_number_2))
else:
print("\n"+friend_name.title()+"'s favorite numbers are:")
for favorite_number_2 in favorite_number:
print("\t"+str(favorite_number_2))
#ex6-11 cities
#创建一个名为cities的字典,其中三个城市名称用作键
#对于每座城市都创建一个字典,并包含该城市所属国家,人口
cities={
'Xian':{
'Country':'China',
'Population':13163000,
},
'New York':{
'Country':'America',
'Population':8510000,
},
'Manchester':{
'Country':'England',
'Population':514400,
},
}
#将每座城市的名字以及有关他们的信息都打印出来
for city_name,city_information in cities.items():
print("\nCityname:"+city_name+
"\n\tCountry:"+city_information['Country']+
"\n\tPopulation:"+str(city_information['Population']))
参考书籍:Python编程从入门到实践(书籍) - 知乎