Python 学习笔记:字典(Dictionary)

一、概述

字典(Dictionary)是 Python 中一种内置的数据结构,属于可变序列,用于存储键值对(key-value pairs)。每个键(key)必须是唯一的,而值(value)可以是任意数据类型。字典的特性包括:

  • 无序性:字典中的元素没有特定的顺序(在 Python 3.7 及更高版本中,字典保持插入顺序)。
  • 可变性:字典是可变的,可以动态添加、删除和修改键值对。
  • 键的唯一性:每个键在字典中必须唯一。

字典通常用于需要快速查找、插入和删除的场景。

二、字典的创建

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

示例

# 使用花括号创建字典
my_dict = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}
print(my_dict)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 使用 dict() 函数创建字典
another_dict = dict(name="Bob", age=30, city="Los Angeles")
print(another_dict)  # 输出: {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}
三、访问字典中的值

可以通过键访问字典中的值。使用方括号 []get() 方法都可以。

示例

# 使用方括号访问值
print(my_dict["name"])  # 输出: Alice

# 使用 get() 方法访问值
print(my_dict.get("age"))  # 输出: 25

# 使用一个不存在的键会引发 KeyError
# print(my_dict["gender"])  # 会引发错误

# 使用 get() 方法访问不存在的键时返回 None 或默认值
print(my_dict.get("gender"))  # 输出: None
print(my_dict.get("gender", "Not specified"))  # 输出: Not specified
四、字典的基本操作
1. 添加或修改键值对

可以通过赋值语句添加或修改字典中的键值对。如果键已经存在,则会更新其对应的值。

示例

my_dict["gender"] = "Female"  # 添加新的键值对
print(my_dict)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York', 'gender': 'Female'}

my_dict["age"] = 26  # 修改已有键的值
print(my_dict)  # 输出: {'name': 'Alice', 'age': 26, 'city': 'New York', 'gender': 'Female'}
2. 删除键值对

可以使用 del 语句或 pop() 方法删除字典中的键值对。

示例

# 使用 del 删除键值对
del my_dict["city"]
print(my_dict)  # 输出: {'name': 'Alice', 'age': 26, 'gender': 'Female'}

# 使用 pop() 删除并返回指定键的值
age = my_dict.pop("age")
print(age)  # 输出: 26
print(my_dict)  # 输出: {'name': 'Alice', 'gender': 'Female'}
3. 清空字典

使用 clear() 方法可以清空字典中的所有键值对。

示例

my_dict.clear()
print(my_dict)  # 输出: {}
4. 字典的长度

使用 len() 函数可以获取字典中键值对的数量。

示例

my_dict = {"name": "Alice", "age": 25}
print(len(my_dict))  # 输出: 2
五、字典的方法

字典有多种内置方法,常用的有:

  • keys():返回字典中所有键的视图。

    示例

    keys = my_dict.keys()
    print(keys)  # 输出: dict_keys(['name', 'gender'])
    
  • values():返回字典中所有值的视图。

    示例

    values = my_dict.values()
    print(values)  # 输出: dict_values(['Alice', 'Female'])
    
  • items():返回字典中所有键值对的视图,以元组的形式。

    示例

    items = my_dict.items()
    print(items)  # 输出: dict_items([('name', 'Alice'), ('gender', 'Female')])
    
六、遍历字典

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

示例

my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 遍历键
for key in my_dict:
    print(key)  # 输出: name, age, city

# 遍历值
for value in my_dict.values():
    print(value)  # 输出: Alice, 25, New York

# 遍历键值对
for key, value in my_dict.items():
    print(f"{key}: {value}")
# 输出:
# name: Alice
# age: 25
# city: New York
七、字典的嵌套

字典可以嵌套,作为值的元素可以是另一个字典。适用于表示层次结构的数据。

示例

nested_dict = {
    "name": "Alice",
    "contact": {
        "email": "alice@example.com",
        "phone": "123-456-7890"
    }
}
print(nested_dict["contact"]["email"])  # 输出: alice@example.com
八、字典的应用

字典在许多场景中非常有用,例如:

  1. 快速查找:字典提供 O(1) 的平均查找时间,适合用作快速查找数据的结构。
  2. 数据表示:可以使用字典表示复杂数据结构,如 JSON 数据。
  3. 存储配置信息:常用于存储配置信息和参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值