pyhton基础知识——字典
1. 字典
- 在python中,字典用放在花括号{}中的一系列键-值对表示
- 键-值对是两个相关联的值
- 键和值之间用冒号分隔,键-值对之间用逗号分隔
- 获取与键相关联的值,可依次指定字典名和放在方括号内的键
-
>>> alien_0 = {'color':'green'} >>> alien_0['color'] 'green'
2. 字典的创建/增/删/改
- 使用一对空的花括号{}定义一个字典
- 字典是一种动态结构,可随时在其中添加键值对
- 可使用del语句删除键值对
-
>>> alien_0 = {} >>> alien_0['color'] = 'green' >>> alien_0['points'] = 5 >>> alien_0 {'color': 'green', 'points': 5} >>> alien_0['points'] = 10 >>> alien_0 {'color': 'green', 'points': 10} >>> del alien_0['points'] >>> alien_0 {'color': 'green'}
3. 字典的遍历
3.1 遍历所有的键值对
-
>>> favorite_languages = { ... 'jen': 'python', ... 'sarah': 'c', ... 'edward': 'ruby', ... 'phil': 'python'} >>> for name, language in favorite_languages.items(): ... print(name.title()+": "+language.title()) ... Jen: Python Sarah: C Edward: Ruby Phil: Python
3.2 遍历所有的键
- 使用方法keys()可以返回一个列表,其中包含字典中的所有键
-
>>> for name in favorite_languages.keys(): ... print(name.title()) ... Jen Sarah Edward Phil >>> if 'erin' not in favorite_languages.keys(): ... print("Erin, please take our poll!") ... Erin, please take our poll!
- 获取字典元素的顺序是不可预测的,可以使用函数sorted()来获得按特定顺序排列的键列表的副本
-
>>> for name in sorted(favorite_languages.keys()): ... print(name.title()) ... Edward Jen Phil Sarah
3.3 遍历所有的值
- 使用方法values()返回一个值列表,但并没有考虑是否重复
-
>>> for language in favorite_languages.values(): ... print(language.title()) ... Python C Ruby Python
- 为剔除重复项,可使用集合set(集合类似于列表,但每个元素都必须是独一无二的)
-
>>> for language in set(favorite_languages.values()): ... print(language.title()) ... Python Ruby C
4. 嵌套
4.1 在列表中存储字典:字典列表
-
aliens = [] for i in range(0, 10): item = {'color': 'green', 'points': 5, 'speed': 'slow'} aliens.append(item) for alien in aliens[0:3]: if alien['color'] == 'green': alien['color'] = 'yellow' alien['points'] = 10 alien['speed'] = 'medium' for alien in aliens[0:5]: print(alien)
运行结果
{'color': 'yellow', 'points': 10, 'speed': 'medium'} {'color': 'yellow', 'points': 10, 'speed': 'medium'} {'color': 'yellow', 'points': 10, 'speed': 'medium'} {'color': 'green', 'points': 5, 'speed': 'slow'} {'color': 'green', 'points': 5, 'speed': 'slow'}
4.2 在字典中存储列表
-
favLanguages = { 'jen': ['python', 'ruby'], 'sarah': ['c'], 'edward': ['ruby', 'go']} for name, languages in favLanguages.items(): print("\n"+name.title()+"'s favorite languages:") for language in languages: print("\t"+language.title())
运行结果
Jen's favorite languages: Python Ruby Sarah's favorite languages: C Edward's favorite languages: Ruby Go
4.3 在字典中存储字典
-
users = { 'aeinstein': { 'first': 'albert', 'last': 'einstein', 'location': 'princeton'}, 'mcurie':{ 'first': 'marie', 'last': 'curie', 'location': 'paris'}} for username, userinfo in users.items(): print("\nUsername: "+username) print("\tFull name: "+userinfo['first'].title()+" "+userinfo['last'].title()) print("\tLocation: "+userinfo['location'].title())
运行结果
Username: aeinstein Full name: Albert Einstein Location: Princeton Username: mcurie Full name: Marie Curie Location: Paris