在Python中,字典(Dictionary)是一种可变的、无序的、键值对(key-value pair)集合。字典中的每个元素都是一个键值对,键(key)必须是唯一的,且不可变,例如字符串、数字或元组。值(value)可以是任意数据类型。
字典的键可以是以下几种类型:
True
和 False
可以作为键。原因:尝试访问字典中不存在的键会引发 KeyError
。
解决方法:使用 get()
方法或 in
关键字检查键是否存在。
my_dict = {'a': 1, 'b': 2}
# 使用 get() 方法
value = my_dict.get('c', 0) # 返回 0,因为 'c' 不存在
# 使用 in 关键字
if 'c' in my_dict:
value = my_dict['c']
else:
value = 0
原因:字典的键必须是不可变的,尝试使用可变对象(如列表)作为键会引发 TypeError
。
解决方法:确保键是不可变的数据类型,例如字符串、数字或元组。
# 错误示例
my_dict = {[1, 2]: 'value'} # 引发 TypeError
# 正确示例
my_dict = {(1, 2): 'value'} # 元组是不可变的,可以正常工作
原因:浮点数存在精度问题,可能导致相同的浮点数被视为不同的键。
解决方法:将浮点数转换为字符串或使用其他唯一标识符。
my_dict = {}
# 错误示例
float_key = 0.1 + 0.2
my_dict[float_key] = 'value' # 可能会引发问题
# 正确示例
str_key = str(float_key)
my_dict[str_key] = 'value' # 转换为字符串,避免精度问题
领取专属 10元无门槛券
手把手带您无忧上云