目录
1. 使用字典
1.1 定义
字典是一系列键-值对。每个键都与值相关联,值的类型可以是数字、字符串、列表甚至字典。每个键-值对是两个相关联的值。指定键时,python将返回相关联的值。键与值之间用冒号分隔,每个键值对之间用逗号分隔。字典名 = {‘键1’:‘值1’,‘键2’:‘值2’} 例:
alien_0 = {'color':'green','size':5}
1.2 访问
要获取某个特定值时,需要依次指定字典名和方括号里的键,字典名['键名'] 例:
alien_0 = {'color':'green','size':5}
print(alien_0['color'])
1.3 添加
添加键-值对时,可依次指定字典名、需添加的键和相关联的值。字典名['键名']=关联值 关联值视其字符类型决定是否要加引号 例:
alien_0 = {'color':'green','size':5}
alien_0['new1']=1
alien_0['new2']=2
print(alien_0)
注意,新增的键-值对在字典中顺序不一定与添加顺序相同,python只保证键-值的对应关系。
1.4 创建空字典
当创建字典时,大括号中不添加任何键-值对,即成功创建了一个空字典。字典名={ } 例:
alien_0={}
alien_0['new1']=1
alien_0['new2']=2
print(alien_0)
1.5 修改值
对字典中已有的值进行修改,采用与添加键-值对相同的方式。 字典名['已有键名']=新关联值
alien_0 = {'color':'green','size':5}
alien_0['color']='red'
alien_0['size']=2
print(alien_0)
alien_0 = {'x_local':0,'y_local':25,'speed':'medium'}
print('初始位置:'+ str(alen_0['x_local'])
if alien_0['speed'] =='slow':
x_increment =1
elif alien_0['speed'] == 'medium':
x_increment = 2
else:
x_increment = 3
alien_0['x_local']=alien_0['x_local'] + x_increment
print('新位置:'+str(alien_0['x_local']))
1.6 删除键-值对
使用del语句,指定字典名与要删除的键名,删除后无法恢复。 del 字典名['键名'] 例:
del alien_0['color']
2. 遍历
2.1 遍历所有键-值对
使用for语句与方法item(),采用两个变量分别存储键与值,再进行输出。遍历字典时,输出顺序也不会与字典中顺序完全相同,python只保证键与值的对应。
alien_0 = {'color':'green','size':'5'}
for k,v in alien_0.items():
print('k:'+k)
print('v:'+v)
item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回。
2.2 遍历所有键
使用方法keys()提取字典中所有键,利用for遍历输出。
alien_0 = {'color':'green','size':'5'}
for k in alien_0.keys():
print(name.title())
遍历字典时,默认遍历所有的键,若不加方法keys(),也默认输出键名。
方法keys()并非只用于遍历;实际上,这个方法将会返回一个列表,其中包含字典中所有的键。
2.3 按顺序遍历所有键
在输出键列表的命令基础上,使用函数sorted()。
alien_0 = {'color':'green','size':'5'}
for k in sorted(alien_0.keys()):
print(name.title())
2.4 遍历所有值
使用for和方法value(),其原理与方法keys()相似,都是返回一个列表,只不过方法value()返回的列表中都是值。
集合set()作用与列表类似,但其中不得包含相同元素。通过调用set(),可剔除值中的重复元素,不会二次输出。例:
alien_0 = {'solor':'green','cize':'green','xxx':'green'}
for v in set(alien_0.values()):
print(v.title())
虽然字典中三个值都是“green”,但只会输出一个“Green”。
3. 嵌套
将字典与列表相互嵌套使用,可存储大量信息。
3.1 字典列表
将各个独立的字典名放入一个列表中,作为其中元素存在,即形成了一个字典列表。
aliens=[]
for alien_num in range(30):
new_alien={'solor':'green','cize':'5'}
aliens.append(new_alien)
for alien in aliens[:5]:
print(alien)
3.2 在字典中存储列表
在字典中,每个键可对应多个值,此时需使用列表的形式将多个值嵌套在字典中,例:
alien_0 = {
'solor':'green',
'cize':['xxx','aaa','sss']
}
在遍历这种多个值的字典时,需对值列表再次进行for循环:
alien_0 = {
'solor':['green'],
'cize':['xxx','aaa','sss']
}
for k,v in alien_0.items():
print('k:'+k)
for vv in v:
print("vv:"+vv)
此时“v”不是变量名,而是一个列表名。
3.3 字典中嵌套字典
字典中的值不仅可以是一个多个元素组成的列表,甚至可以是一个全新字典,例:
user={
'chenhu':{
"姓":"chen",
"名":"hu",
"年龄":'10'
},
'huchen':{
"姓":"hu",
"名":"chen",
"年龄":'20'
}
}
for user_name,user_inf in user.items():
print('用户:'+user_name)
姓名=user_inf['姓']+user_inf['名']
年龄=user_inf['年龄']
print(姓名,年龄)
此时“user_inf”不是变量名,而是包含了用户相关信息的字典名,需再次调用其中的键-值对。代码输出结果为: