5 Python编程:从入门到实践---字典
访问字典中的值
alien_0 = {'color': 'green'} print(alien_0['color']) 返回内容 green
添加键-值对
alien_0 = {'color': 'green', 'points': 5} print(alien_0) alien_0['x_position'] = 0 alien_0['y_position'] = 25 print(alien_0) 结果 {'color': 'green', 'points': 5} {'color': 'green', 'points': 5, 'y_position': 25, 'x_position': 0}
删除键-值对
alien_0 = {'color': 'green', 'points': 5} print(alien_0) del alien_0['points'] print(alien_0) 结果 {'color': 'green', 'points': 5} {'color': 'green'} 删除的键-值对将永远消失了
遍历字典,使用items()方法
alien = {'first_name':'liu','last_name':'weidong','age':18,'city':'beijing'} for k,v in alien.items(): print("\n"+k) print(v)
遍历字典中的所有键,使用keys()方法
alien = {'first_name':'liu','last_name':'weidong','age':18,'city':'beijing'} for name in alien.keys(): print(name)
按顺序遍历字典中的所有键,sorted()方法,先对字典键进行排序
alien = {'first_name':'liu','last_name':'weidong','age':18,'city':'beijing'} for name in sorted(alien.keys()): print(name)
遍历字典中的所有值,values()
alien = {'first_name':'liu','last_name':'weidong','age':18,'city':'beijing','live':'beijing'} for name in set(alien.values()): print(name) 结果 weidong liu 18 beijing
这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。
字典列表
#创建空列表
aliens = [] #生产30个相同的字典列表 for i in range(30): new_aliens = {'color': 'green', 'points': 5, 'speed': 'slow'} aliens.append(new_aliens) #打印前5个列表 for i in aliens[:5]: print(i) #统计列表长度 print("Total number of aliens {}".format(len(aliens))) #判断如果前三个color是green,将字典改为yellow for i in aliens[:3]: if i['color'] == 'green': i['color'] = 'yellow' i['speed'] = 'medium' i['points'] = 10 elif i['color'] == 'yellow': i['color'] = 'red' i['speed'] = 'fast' i['points'] = '15' for i in aliens[:5]: print(i)
在字典中存储列表
favorite_languages = { 'jen': ['python', 'ruby'], 'sarah': ['c'], 'edward': ['ruby', 'go'], 'phil': ['python', 'haskell'], } for name,languages in favorite_languages.items(): print("\n" + name) for language in languages: print("\t" + language.title())
在字典中存储字典
users = { 'aeinstein': { 'first': 'albert', 'last': 'einstein', 'location': 'princeton', }, 'mcurie': { 'first': 'marie', 'last': 'curie', 'location': 'paris', }, } for user,name_info in users.items(): print("User is {}".format(user)) print("fullname is {} {}".format(name_info['first'].title(),name_info['last'])) print("location is {}".format(name_info['location']))
不积跬步,无以至千里;不积小流,无以成江海。