字典dictory
在Python中,字典是一系列的键值对。与键相关联的值可以是数字,字符串,列表乃至字典。可以用字典来存储一个对象的多种信息。
在Python中,字典用放在花括号{} 中的一系列键值对表示。
实例:alien_0={'color':'green','points':5}
键和值之间用冒号分隔,而键—值对之间用逗号分隔。
可以用print(alien_0),输出字典信息。
使用字典
假设现有字典:alien_0={'color':'green','points':5}
访问字典中的值
要获取与键相关联的值,可依次指定字典名和放在方括号内的键。
如要获取字典alien_0中与键'color'相关联的值:alien_0['color']
如此,我们便可以修改或获取字典中的值。
添加键值对
要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。
如要对字典alien_0添加键值对'x_position':0,则做法如下:alien_0['x_position']=0
注意,键—值对的排列顺序与添加顺序不同。Python不关心键—值对的添加顺序,而只关心键和值之间的关联关系。
删除键值对
使用del语句将相应的键值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
例如,要从字典alien_0 中删除键值对'x_position':0 ,做法如下:del alien_0['position']
遍历字典
假设现有字典favorite_languages = {'jen':'python','sarah': 'c','edward':'ruby','phil':'python'},有以下几种方式遍历字典:
遍历所有的键值对
编写用于遍历字典的for循环,可声明两个变量,用于存储键值对中的键和值。
for key,value in favorite_languages.items(): #items()返回一个键值对列表,接下来,for 循环依次将每个键—值对存储到指定的两个变量中
print("\nKey: " + key)
print("Value: " + value)
注意,即便遍历字典时,键—值对的返回顺序也与存储顺序不同。Python不关心键—值对的存储顺序,而只跟踪键和值之间的关联关系。
遍历字典中的所有键
有时候,我们仅需要得到字典中的键,可以借助于函数keys(),方法如下:
for name in favorite_languages.keys(): #提取字典中所有的键,并依次将它们存储到变量name中
print(name.title())
函数keys() 并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有键。
遍历字典中的所有值
要想得到字典包含的值,可使用方法values() ,它返回一个值列表,而不包含任何键。
for language in favorite_languages.values(): #提取字典中所有的值,并依次将它们存储到变量language中
print(language.title())
for language in set(favorite_languages.values()): #set()会将重复的元素剔除
print(language.title())
嵌套
可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
字典列表
列表所存储的元素可以是字典。可以通过字典列表,来表示多个对象的集合。
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
#字典列表aliens,所存储的元素都是字典
aliens = [alien_0, alien_1, alien_2]
列表字典
每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese'],
} #将列表作为值存储于字典内
在字典中存储字典
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
#两个键:用户名'aeinstein' 和'mcurie' ;
#与每个键相关联的值都是一个字典,其中包含用户的名、姓和居住地。