字典

Python字典是一种内置的数据结构,它以键值对的形式存储数据。字典中的每个元素都由一个键和一个值组成,键必须是唯一的,而值则可以是任何数据类型。下面我将详细讲解Python字典的基本概念、操作和代码示例。

基本概念

  1. 键值对:字典由键值对构成,键是唯一的,值可以重复。
  2. 不可变性:键必须是不可变类型,如整数、浮点数、字符串和元组。
  3. 可变长度:字典的长度可以动态变化,可以随时添加或删除键值对。

创建字典

字典可以用花括号{}或者dict()函数来创建。

# 使用花括号创建字典
my_dict = {'name': 'Kim', 'age': 25}

# 使用dict()函数创建字典
my_dict = dict(name='Kim', age=25)

访问字典

访问字典中的值通常使用键。

# 访问字典中的值
name = my_dict['name']
print(name)  # 输出: Kimi

如果尝试访问不存在的键,会抛出KeyError

修改字典

可以给字典添加新的键值对或者修改已有的键值对。

# 添加新的键值对
my_dict['gender'] = 'Female'

# 修改已有的键值对
my_dict['age'] = 26

删除字典元素

可以使用del语句、pop()方法或clear()方法来删除字典中的元素。

# 使用del语句删除键值对
del my_dict['gender']

# 使用pop()方法删除键值对,并返回被删除的值
age = my_dict.pop('age')

# 使用clear()方法清空字典
my_dict.clear()

遍历字典

可以使用for循环遍历字典的键、值或键值对。

# 遍历字典的键
for key in my_dict:
    print(key)

# 遍历字典的值
for value in my_dict.values():
    print(value)

# 遍历字典的键值对
for key, value in my_dict.items():
    print(f"{key}: {value}")

字典推导式

字典推导式是一种从其他可迭代对象创建字典的简洁方式。

# 从列表创建字典
my_list = [(1, 'one'), (2, 'two'), (3, 'three')]
my_dict = {k: v for k, v in my_list}

合并字典

可以使用update()方法或**运算符来合并两个字典。

# 使用update()方法合并字典
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1)  # 输出: {'a': 1, 'b': 3, 'c': 4}

# 使用**运算符合并字典
dict3 = {'a': 1, 'b': 2}
dict4 = {'c': 3, 'd': 4}
merged_dict = {**dict3, **dict4}
print(merged_dict)  # 输出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

字典视图

Python 3.7+提供了字典视图对象,它们是不可变集合,可以用于迭代字典中的键、值或项。

# 键视图
keys_view = my_dict.keys()
for key in keys_view:
    print(key)

# 值视图
values_view = my_dict.values()
for value in values_view:
    print(value)

# 项视图
items_view = my_dict.items()
for item in items_view:
    print(item)

字典方法

字典提供了许多内置方法,例如get()keys()values()items()update()等。

# get()方法,如果键不存在则返回默认值
value = my_dict.get('nonexistent_key', 'default_value')
print(value)  

# keys()方法,返回字典的键视图
keys = my_dict.keys()
print(list(keys))  

# values()方法,返回字典的值视图
values = my_dict.values()
print(list(values))  

# items()方法,返回字典的项视图
items = my_dict.items()
print(list(items))  

字典的嵌套

字典可以包含其他字典,形成嵌套结构。

nested_dict = {
    'person1': {'name': 'Alice', 'age': 30},
    'person2': {'name': 'Bob', 'age': 25}
}

# 访问嵌套字典中的值
print(nested_dict['person1']['name'])  # 输出: Alice

总结

字典是Python中非常灵活和强大的数据结构,适用于存储和管理具有映射关系的数据。通过上述讲解和代码示例,应该对Python字典有了更深入的理解。字典的应用非常广泛,包括但不限于数据存储、配置管理、缓存实现等场景。掌握字典的使用,对于提高Python编程能力非常有帮助。

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)