前面简单介绍了Python字典,以及如何创建字典。今天我们来聊聊如何获取字典中的值。python中有两种方法来获取字典中的值——get()
方法和 [key]
方法,今天我们来简单对比一下这两种方法。我们还是拿上次的car来举例子。
car = {"brand": "Porsche", "model": "911", "year": 1963}
print(car["brand"])
print(car.get("brand"))
我们获取brand信息,这两种方法得到的结果都是Porsche。
在实际编写程序的时候,有时候我们并不知道字典中有哪些 key 。如果你要获取一个字典中并不存在的key所对应的值,这时候两种方法就有区别了
car = {"brand": "Porsche", "model": "911", "year": 1963}
print(car.get("price"))
# None
print(car["price"])
# KeyError: 'price'
因为字典里面没有price这个key,用get()方法得到的是None,用[key]方法会得到一个错误,keyError。如果程序中有任何 Error, 那么程序会停止运行。这是大家都不愿意看到的。 但是 get() 方法没有报错,返回了一个None。其实这里代码可以写的更人性化一些,get()方法可以增加第二个参数,指定 get() 方法在遇到错误的时候返回提示信息:
car = {"brand": "Porsche", "model": "911", "year": 1963}
print(car.get("price", "Key doesn't exist!"))
# Key doesn't exist!
这里指定如果没有这个key就返回"Key doesn't exist!"的提示信息。
get() 方法和 [key] 方法的主要区别在于,[key] 在遇到不存在的 key 时会抛出 KeyError
错误,get() 方法会返回None或者你指定的提示信息,但不会妨碍程序继续执行。