Python 字典是一种无序的、可变的、键值对(key-value)的集合。字典中的键必须是唯一的,而值则不必。字典的键可以是任何不可变的数据类型,如字符串、数字或元组,但通常使用字符串作为键。
{}
定义。collections.OrderedDict
。collections.Counter
。# 创建一个字典
my_dict = {'apple': 1, 'banana': 2, 'cherry': 3}
# 访问字典中的值
print(my_dict['apple']) # 输出: 1
# 添加一个新的键值对
my_dict['date'] = 4
# 修改一个键的值
my_dict['banana'] = 5
# 删除一个键值对
del my_dict['cherry']
# 遍历字典
for key, value in my_dict.items():
print(f'{key}: {value}')
原因:尝试访问不存在的键会引发 KeyError
。
解决方法:使用 get
方法或检查键是否存在。
# 使用 get 方法避免 KeyError
value = my_dict.get('nonexistent_key', 'default_value')
print(value) # 输出: default_value
# 检查键是否存在
if 'nonexistent_key' in my_dict:
print(my_dict['nonexistent_key'])
else:
print('Key does not exist')
原因:字典的键是按照哈希值进行存储和比较的,因此不同类型的键可能会产生相同的哈希值。
解决方法:确保键是不可变的,并且尽量避免使用可能导致哈希冲突的键类型。
# 使用不可变类型作为键
my_dict = {1: 'one', (2,): 'two', frozenset([3]): 'three'}
# 避免使用可能导致哈希冲突的键
# 不推荐使用列表作为键,因为列表是可变的
# my_dict = {[1]: 'one'} # 这将引发 TypeError
通过理解这些基础概念和常见问题,你可以更有效地使用 Python 字典,并解决在实际开发中遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云