一、有关字典的基础知识以及基本操作
1.字典:字典是一系列键值对。每个键都与一个值相关联,我们可以使用键来访问相关联的值,这个值可以是字符串、数值、列表乃至字典。在python,字典放在花括号({ })内,键和值之间用冒号分隔开,键值对之间用逗号分隔开。
注意:这个逗号,在字典内嵌字典时,非常容易被忘记哦,看到的小伙伴们多注意一下下~~~
2.访问字典中的值:
(1) 方法一:首先指定字典名,其次在方框号内部指定存放值的键;
alien_0 = {'color': 'green', 'point':5}
print(alien_0['point'])
(2)方法二:使用方法get(),该方法常用于不确定指定的键是否存在的情况;使用方法get()来访问值可以指定两个参数,其中第一个参数是必不可少的,该参数用于指定键;第二个参数是可选的,用于指定当指定的键不存在时所要返回的值。
alien_0 = {'color': 'green', 'point': 5}
alien_0 . get('point', 'No point value assigned.')
3.添加键值对:由于字典本身是一种动态结构,因此可以随时在其中添加键值对。只需要以此指定字典名,用方括号括起的键和相关联的值。
alien_0 = {'color': 'green', 'point': 5}
alien_0['x_position'] = 0
alien_0['y_position'] = 25
4.修改键值对:依次指定字典名、用方括号括起的键、以及与该键相关联的新值
alien_0 = {'x_position': 0, 'y_position': 25, 'speed': 'medium'}
if alien_0['speed'] == 'slow':
x_increment = 1
elif alien_0['speed'] == 'medium':
x_increment = 2
elif alien_0['speed'] == 'fast':
x_increment = 3
alien_0['x_position'] = alien_0['x_position'] + x_increment
5.使用del语句永久地删除键值对,必须指定字典名和用方括号括起的需要删除的键
alien_0 = {'color': 'green', 'point': 5}
del alien_0['color']
del alien_0['point']
6.有类似对象组成的字典:可以使用多行来定义有类似对象组成的字典,格式为:在输入做花括号后点击回车,在下一行缩进4个空格来指定第一个键值对,并在它的后面加一个逗号。以此类推,直到最后一个键值对,并在其下一行缩进四格添加一个花括号。其中一个较为不错的办法是在最后一个键值对后面也加上逗号。
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
二、遍历字典
1.使用for循环和方法items()遍历所有键值对:方法items()的作用是返回一个键值对的列表
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0 . items( ):
print(f"{key}: {value}")
2.使用for循环和方法key()遍历所有键:同时还可以使用函数sorted()对方法key()所提取出的列表进行操作,使其按着字母表的顺序,遍历字典中所有的键。
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
friend = ['jen', 'sarah']
for name in sorted(favorite_languages . keys()):
print(f"{name},hi!")
if name in friend:
print(f"{name}, I know you like {favorite_languages[name]}")
3.使用for循环和方法values()遍历字典中所有值:同时为了剔除重复项,可使用集合(set)对方法values()所提取出的列表进行炒作
favorite_language = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for language in set(favorite_language . values()):
print(f"{language}")
三、嵌套
1.在列表中存储字典:步骤首先定义字典,再将其存储到列表中
alien_0 = {'color': 'green', 'point': 5}
alien_1 = {'color': 'yellow', 'point': 10}
alien_2 = {'color': 'red', 'point': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
for value in alien . values():
print(f"{value}")
2.在字典中存储列表:
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell']
}
for name, languages in favorite_languages . items():
if len(languages) == 1:
print(f"{name}, I know you love{languages}")
else:
print(f"{name}'s loving languages:")
for language in languages:
print(language)
3.在字典中存储字典:注意一定别忘记键字对与键字对之间的逗号
users = {
'aeinstein' : {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie' : {
'first': 'marie',
'last' : 'curie',
'location': 'paris',
}
}
for name, infor in users . items():
print(f"{name}'s information:")
full_name = f"{infor['first']} {infor['last']}"
location = f"{infor['location']}"
print(full_name)
print(location)



