python-字典
字典中的键值对
键和值之间用冒号分割,键值对之间用逗号分割
在添加键值对时,Python不关心键值对的添加顺序,只关心键与值之间的关联关系
在使用字典存储用户提供的数据或者在编写能自动生成大量键值对的代码时,一般要先建立空字典
使用del语句删除键值对--须指定字典名以及要删除的键,使用del的删除为永久删除
遍历字典
items()返回一个键值对的列表
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0.items():
print('\nKey: ' + key)
print('Value: ' + value)
此处key为键,value为值
需注意:在遍历字典时,python同样不在意键值对的存储顺序,即键值对的返回顺序有可能与存储顺序不同,python只跟踪键和值之间的关联关系
遍历字典中所有的键
favorite_languages={
'jen':'python',
'Erica':'C',
'edward':'ruby',
'phill':'php',
}
for name in favorite_languages.keys():
print(name.title())
可以使用,sorted()排序
favorite_languages={
'jen':'python',
'Erica':'C',
'edward':'ruby',
'phill':'php',
}
for name in sorted(favorite_languages.keys()):
print(name.title()+", thank you for taking the poll.")
遍历字典的值
使用方法value(),来返回一个值列表
集合set要求其中的每一个元素都是独一无二的,可以使用此方法来剔出重复项
favorite_languages = {
'jen': 'python',
'Erica': 'C',
'edward': 'C',
'phill': 'php',
}
print("The following languages have been mentioned: ")
for language in set(favorite_languages.values()):
print(language.title())
嵌套
1.在列表中存储字典
#创建一个用于存储外星人的空列表
aliens=[]
#创建30个绿色的外星人
for alien_number in range(30):
new_alien={'color':'green','points':5}
aliens.append(new_alien)
for alien in aliens[:3]:
if alien['color']=='green':
alien['color']='yellow'
alien['points']=15
#显示前五个外星人
for alien in aliens[:5]:
print(alien)
print('...')
print("Total number of aliens: "+str(len(aliens)))
2.在字典中存储列表
favorite_languages = {
'jen':['python','C'],
'Erica': ['C'],
'edward': ['PHP','java'],
'phill': ['PHP','go'],
}
for name,languages in favorite_languages.items():
print("\n"+name.title()+"'s favorite languages are: ")
for language in languages:
print('\t'+language.title())
需注意列表和字典的嵌套层级不应太多
3.在字典中嵌套字典
user = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
for user_name, user_info in user.items():
print("\nUsername: " + user_name)
full_name = user_info['first'] + " " + user_info["last"]
location = user_info['location']
print("\tFull_name: " + full_name.title())
print("\tLocation: " + location.title())