dict[key] 和 dict.get(key) 的区别是什么?
一、dict[key]
dict[key]
是直接通过键来访问字典中的值的方式。如果键存在于字典中,它将返回对应的值;如果键不存在,它将引发KeyError异常。
示例:
student_scores = {"Alice": 85, "Bob": 92, "Charlie": 78}# 获取键为"Alice"的值alice_score = student_scores["Alice"] # 返回 85# 尝试获取不存在的键try: john_score = student_scores["John"]except KeyError: print("Key 'John' does not exist.")
在上面的示例中,student_scores["Alice"]
返回了键”Alice”对应的值85,而student_scores["John"]
引发了KeyError异常,因为键”John”不存在于字典中。
二、dict.get(key)
dict.get(key)
是通过键来获取字典中的值的另一种方式。如果键存在于字典中,它将返回对应的值;如果键不存在,它将返回一个默认值(默认为None),而不会引发异常。
示例:
student_scores = {"Alice": 85, "Bob": 92, "Charlie": 78}# 获取键为"Alice"的值alice_score = student_scores.get("Alice") # 返回 85# 尝试获取不存在的键,返回默认值Nonejohn_score = student_scores.get("John") # 返回 None# 设置自定义的默认值john_score = student_scores.get("John", 0) # 返回 0
在上面的示例中,student_scores.get("Alice")
返回了键”Alice”对应的值85,而student_scores.get("John")
返回了默认值None,因为键”John”不存在于字典中。我们还可以使用get()
方法来指定自定义的默认值,如student_scores.get("John", 0)
返回了自定义的默认值0。
三、区别
使用dict[key]
方式获取字典中的值时,如果键不存在,会引发KeyError异常,因此在使用前需要确保键存在。使用dict.get(key)
方式获取字典中的值时,如果键不存在,会返回一个默认值,不会引发异常,因此更加安全。通常情况下,如果我们知道键在字典中一定存在,可以使用dict[key]
来直接获取值。但如果键的存在不确定,或者希望在键不存在时返回一个默认值,那么较好使用dict.get(key)
。
延伸阅读
字典的其他方法
除了dict[key]
和dict.get(key)
,Python字典还提供了许多其他有用的方法,如dict.keys()
用于获取所有键,dict.values()
用于获取所有值,dict.items()
用于获取所有键值对等。熟练掌握这些方法可以更灵活地操作字典数据。