Day7:还是字典
今天我们学习一下如何在字典中增加、修改、删除数据和遍历字典。
为了跟上今天的学习进度,请在“Week_06”笔记本最下面添加一个markdown单元格,并写上“使用字典”。
向字典中添加数据
在创建一个空字典后,我们总是需要向其中添加一些数据。具体操作方法见以下代码:
# 向字典中添加“键-值”对
car = { "year": 2018 }
car["color"] = "Blue"
print( "Year: { } \t Color: { }".format( car["year"], car["color"] ) )
在向字典中添加数据时,等号左边是字典的变量名,其后紧跟一个中括号,中括号内填入“键”;在等号右边,便填写“值”的数据。运行上段代码,将会输出一串格式整齐的有关汽车信息的字符串。
注意: 在python 3.7及以后的版本中,字典默认为是有序的。在旧版本中,“键-值”对之间是没有先后顺序的,如需在旧版本中使用有序字典,你需要用到OrderdDict()
.
修改信息
改变“键-值”对与添加新的“键-值”对的操作完全相同。当字典中已经有你要添加的“键”,那么新的“值”会覆盖掉原来的“值”;如果没有你要添加的“键”,那字典将会创建这个新的“键-值”对。
# 更新已经存在的“键-值”对信息
car = { "year": 2018, "color": "Blue" }
car["color"] = "Red"
print( "Year: { } \t Color: { }".format( car["year"], car["color"] ) )
运行上段代码,发现汽车的颜色不再是蓝色,而是变成了红色。与我们向字典中添加数据的操作类似,只不过当前字典中已经有了名为"color"的键,因此"color"所对应的新“值”将会覆盖掉原来的“值”。
删除信息
有时,我们需要删除一些“键-值”对,此时我们需要del
函数。
# 在字典中删除“键-值”对
car = { "year": 2018 }
try:
del car["year"]
print(car)
except:
print("That key does not exist")
运行上段代码。在删除字典的“键-值”对时应特别注意,因为如果你要删除的信息不在要处理的字典内,那将会导致程序崩溃。为了避免程序崩溃,需要用到try/except
。
遍历字典
字典像列表一样是可迭代的。不同的是,字典有三种不同的遍历方法。我们可以同时遍历“键”和“值”、也可以只遍历“键”,或者是只遍历“值”。
只遍历“键”
如果只需要遍历字典的“键”,我们需要使用.keys()
方法。
# 遍历字典的“键”
person = { "name": "John", "age": 26 }
for key in person.keys( ):
print(key)
print( person[key] ) # 输出当前“键”的信息
运行上段代码,发现打印的是字典中每个“键”的信息。在获取每个“键”的信息后,我们便可以通过“键”获取与之相对应的“值”。
只遍历“值”
如果不需要获取“键”的信息,而只需要获取“值”,可以使用.values()
方法。
# 遍历字典的“值”
person = { "name": "John", "age": 26 }
for value in person.values( ):
print(value)
运行上段代码,输出结果只包含了“键-值”对中的“值”,而不会输出“键”的信息。在我们每一次迭代字典person
时,临时变量value
存储了每个“键-值”对的“值”。
遍历“键-值”对
如果需要同时访问“键”和“值”,则需要使用.items()
方法。这种方法将“键”和“值”分配给两个临时变量。
# 遍历“键-值”对
person = { "name": "John", "age": 26 }
for key, value in person.items( ):
print( "{ }: { }".format(key, value) )
运行上段代码,结果是“键”和“值”会同时打印。当我们遍历字典person
时,临时变量key
和value
分别接受“键”和“值”的信息。
注意: 临时变量的名称通常被称为“k”和“v”。
今日练习
- 用户输入: 创建一个空字典。询问用户的姓名、地址和电话号码。将这些信息添加到字典中,随后遍历字典信息,并将结果展示给用户。
- 找错误: 找出下面代码的错误
>>> person = { 'name', 'John Smith' } >>> print(person['name'])
今日小结
今天我们着重学习了如何使用字典。记住,添加和修改“键-值”对的语法相同。