6.2 使用字典
字典是一系列的键-值对,可以用键来访问与之相关联的值。
字典用放在{}中的一系列键-值对表示。
alien_0 = {'color': 'green', 'points': 5}
6.2.1 访问字典中的值
print(alien_0['color']) #输出的值为green
6.2.2 添加键-值对
alien_0['x_position'] = 0
alien_0['y_position'] = 25
注意:首先得定义了字典,即字典名alien_0存在,才能添加键-值对。
键-值对的排列顺序不一定与添加顺序相同,Python只关心键-值之间的对应关系。
6.2.3 创建空字典(添加键-值对)
alien_0 = {}
6.2.4 修改字典中的值
alien_0['x_position'] = 25 #直接找到字典名中对应的键,改值就行
6.2.5 删除键-值对
del alien_0['points']
6.2.6 不同字典的编写格式
1.一个对象的多种信息
alien_0 = {'color': 'green', 'points': 5} #一个外星人的颜色,分值等。所以横着写
2.多个对象的同一种信息
favorite = {
'Mike': 'C',
'Tom': 'JAVA',
'Bob': 'Python',
} #每个人最喜欢的语言
6.3 遍历字典
6.3.1 遍历所有键-值对
方法items()
method?
for key, value in favorite.items(): #将每一个键-值对拿出,并把键存储在变量key中,值存储在变量value中。
print(key, value, '\n')
6.3.2 遍历所有的键
方法key()
for name in favorite.keys(): #将每一个键拿出,并把键存储在变量name中。
print(name)
#注意:<br /> 1.遍历字典时,如果字典名后面没有任何方法,则默认遍历所有的键(即上述如果没有.keys(),输出不变)。<br />
6.3.3 遍历所有的值
方法values()
for value in favorite.values():
print(value)
#注意:values()也会返回一个列表,包含值。但问题同上????<br />
6.3.4 按顺序遍历
利用函数sorted()
for name in sorted(favorite.keys()):
print(name)
6.3.5 剔除值的重复项
利用函数set()
set(favorite.values())
6.4 嵌套
将一系列字典存储在列表中,或将列表作为值存储在字典中,称为嵌套。
6.4.1 字典列表(每个元素都是字典)
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'red', 'points': 10}
alien_2 = {'color': 'blue', 'points': 15}
aliens = [alien_0, alien_1, alien_2] #字典列表(列表中的元素是字典)
for et in aliens:
print(et)
适用于多个事物拥有多个属性,且每个属性只有一个值的情况。
6.4.2 将列表存储在字典中
当要描述的事物的属性可能有多个值时,就可以在字典中嵌套列表。即一个键可以关联多个值。
favorite = {
'Mike': ['C', 'VB'],
'Tom': ['JAVA'],
'Bob': ['Python','C++','HTML'],
'Tony': ['C','Ruby','C#']
}
for name, languages in favorite.items():
print(name.title())
for language in languages:
print(language)
print('\n')
#适用于多个事物的同种属性具有多个值时的情况。(有多个人,对于他们喜欢的语言,一个人可能有多个)<br />
6.4.3 在字典中存储字典
外层字典中,键对应的值也是一个字典。<br /> eg. P97(pdf 60)<br /> 网站用户:<br /> ‘用户名’作为键,对应值‘用户信息’。而用户信息也是个字典,其中的各种键代表用户的各种信息类型,如地址,firstname等<br />
小结:
- 所谓遍历,其实靠的是for循环。keys(),values(),items()都只是取值。
2.
d.keys(),d.values(),d.items() 返回的都是视图对象(view),可以进行迭代操作,与迭代器类似。可以通过list()方法将它们列表化。