1.使用字典
Python中,字典是一系列键-值对,每个键都与一个值相关联,你可以使用键来访问与之相关联的值。如下示例:
alien_0 = {'color':'green','point':5}
print (alien_0['color'])
键-值对是两个相关联的值,键和值之间用冒号分隔,键-值对之间用逗号分隔。
要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值,例:
alien_0 = {'color':'green','point':5}
print (alien_0['color'])
alien_0['x_position'] = 0
alien_0['y_position'] = 0
print (alien_0)
注意:键-值对的排列顺序与添加顺序不同,Python不关心键-值对的添加顺序,而只关心键和值之间的关联关系。
对于字典中不再需要的信息,可使用del语句将相应的键-值对彻底删除。
del alien_0['point']
2.遍历字典
使用for循环遍历字典,for语句的第二部分包含字典名和方法items(),它返回一个键-值对列表:
user_0 = {
'username':'efermi',
'first':'enrico',
'last':'fermi',
}
for key,value in user_0.items():
print("\nKey: " + key)
print("\nValue: " + value)
遍历字典中的所有键,使用方法keys()提取字典中的所有键:
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for name in favorite_languages.keys():
print (name.title())
按顺序遍历字典中的所有键,可使用函数sorted()来获得按特定顺序排列的键列表的副本:
for name in sorted(favorite_languages.keys()):
print (name.title() + ",thank you for taking the poll.")
遍历字典中的所有值,使用方法values(),它返回一个值列表,而不包含任何键:
for language in favorite_languages.values():
print (language.title())
为了在遍历的时候剔除重复项,可使用集合set(),集合类似于列表,但是每个元素必须是独一无二的:
for language in set(favorite_languages.values()):
print (language.title())
3.嵌套
字典列表,在列表中存储字典:
alien_0 = {'color':'green','point':5}
alien_1 = {'color':'yellow','point':10}
alien_2 = {'color':'red','point':15}
aliens = [alien_0,alien_1,alien_2]
for alien in aliens:
print (alien)
在字典中存储列表,每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表:
pizza = {
'crust':'thick',
'toppings':['mushrooms','extra cheese'],
}
print ("You ordered a" + pizza['crust'] + "-crust pizza" +
"with the following toppings:")
for topping in pizza['toppings']:
print ("\t" +topping)
在字典中存储字典:
users = {
'aeinstein':{
'first':'albert',
'last':'einstein',
'location':'princeton',
},
'mcurie':{
'first':'marie',
'last':'curie',
'location':'psris',
}
}
for username,user_info in users.items():
print("\nUsername: " + username)
full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
print("Full name: " + full_name.title())
print("Location: " + location.title())