6.2 使用字典
6.2.1 访问字典中的值
要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示:
dict = {'颜色':'红色'}
print(dict['颜色'])
>>>
红色
6.2.2 添加键—值对
dict = {'颜色':'红色'}
dict['数字'] = 5
dict['目标'] = 10
print(dict)
>>>
{'颜色': '红色', '数字': 5, '目标': 10}
6.2.3 先创建一个空字典
dict = {}
6.2.4 修改字典中的值
要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。
dict = {'颜色': '红色', '数字': 5, '目标': 10}
dict['颜色'] = '绿色'
print(dict)
>>>
dict = {'颜色': '绿色', '数字': 5, '目标': 10}
6.2.5 删除键—值对
对于字典中不再需要的信息,可使用del语句将相应的键—值对彻底删除。使用del语句时, 必须指定字典名和要删除的键。
dict = {'颜色': '绿色', '数字': 5, '目标': 10}
del dict['目标']
print(dict)
>>>
dict = {'颜色': '绿色', '数字': 5}
注意 删除的键—值对永远消失了。
6.2.6 由类似对象组成的字典
在前面的示例中,字典存储的是一个对象(游戏中的一个外星人)的多种信息,但你也可以 使用字典来存储众多对象的同一种信息。
favorite_languages = {
'张三': 'python',
'李四': 'c',
'王五': 'ruby',
'赵六': 'python',
}
注意 对于较长的列表和字典,大多数编辑器都有以类似方式设置其格式的功能。对于较长的 字典,还有其他一些可行的格式设置方式,因此在你的编辑器或其他源代码中,你可能 会看到稍微不同的格式设置方式。
6.3 遍历字典
6.3.1 遍历所有的键—值对
favorite_languages = {
'张三': 'python',
'李四': 'c',
'王五': 'ruby',
'赵六': 'python',
}
for key,value in favorite_languages.items():
print('\nKey:' + key)
print('Value:'+ value)
>>>
Key:张三
Value:python
Key:李四
Value:c
Key:王五
Value:ruby
Key:赵六
要编写用于遍历字典的for循环,可声明两个变量,用于存储键—值对中的键和值。 对于这两个变量,可使用任何名称。
6.3.2 遍历字典中的所有键
在不需要使用字典中的值时,方法keys()很有用。
for name in favorite_languages.keys():
print(name)
>>>
张三
李四
王五
赵六
6.3.3 按顺序遍历字典中的所有键
调用了函数sorted()排序
favorite_languages = {
'zhangsan':'python',
'lisi':'c',
'wangwu':'ruby',
'zhaoliu':'python',
}
for name in sorted(favorite_languages.keys()):
print(name + 'thank you for taking the poll!')
>>>
lisithank you for taking the poll!
wangwuthank you for taking the poll!
zhangsanthank you for taking the poll!
zhaoliuthank you for taking the poll!
6.3.4 遍历字典中的所有值
favorite_languages = {
'zhangsan':'python',
'lisi':'c',
'wangwu':'jave',
'zhaoliu':'python',
}
for language in favorite_languages.values():
print(language.title())
>>>
Python
C
Jave
Python
这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题, 但如果被调查者很多,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。 集合类似于列表,但每个元素都必须是独一无二的:
for language in set(favorite_languages.values()):
print(language.title())
>>>
Jave
Python
C
6.4 嵌套
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
6.4.1 字典列表
dict_1 = {'张三':'18'}
dict_2 = {'李四':'19'}
dict_3 = {'王五':'17'}
dicts = [dict_1,dict_2,dict_3]
for dict in dicts:
print(dict)
>>>
{'张三': '18'}
{'李四': '19'}
{'王五': '17'}
6.4.2 在字典中存储列表
favorite_languages = {
'zhangsan':['python','jave'],
'lisi':['c','jave'],
'wangwu':['jave','c++'],
'zhaoliu':['python']
}
for name,languages in favorite_languages.items():
print('\n'+name.title()+"'s favotite languages are:")
for language in languages:
print('\t' + language.title())
>>>
Zhangsan's favotite languages are:
Python
Jave
Lisi's favotite languages are:
C
Jave
Wangwu's favotite languages are:
Jave
C++
Zhaoliu's favotite languages are:
Python
6.4.3 在字典中存储 字典
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
for username, user_info in users.items():
print("\nUsername: " + username)
full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
print("\tFull name: " + full_name.title())
print("\tLocation: " + location.title())
>>>
Username: aeinstein
Full name: Albert Einstein
Location: Princeton
Username: mcurie
Full name: Marie Curie
Location: Paris
本文详细介绍了Python中字典的基本操作方法,包括访问、添加、修改及删除字典中的键值对等内容,并通过实例展示了如何遍历字典,以及如何进行嵌套结构的设计。
2059

被折叠的 条评论
为什么被折叠?



