跳转至

Day7

本文总阅读量次 ,原创教程,严禁转载

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时,临时变量keyvalue分别接受“键”和“值”的信息。

注意: 临时变量的名称通常被称为“k”和“v”。

今日练习

  1. 用户输入: 创建一个空字典。询问用户的姓名、地址和电话号码。将这些信息添加到字典中,随后遍历字典信息,并将结果展示给用户。
  2. 找错误: 找出下面代码的错误
    >>> person = { 'name', 'John Smith' }
    >>> print(person['name'])
    

今日小结

今天我们着重学习了如何使用字典。记住,添加和修改“键-值”对的语法相同。

上一篇:Day6字典
下一篇:Day8元组、集合、不可变集合