当前位置:首页>python>Python基础数据类型与变量—字典

Python基础数据类型与变量—字典

  • 2026-09-10 15:30:05
Python基础数据类型与变量—字典

1 定义

字典 (Dictionary) 是用于存储键值对 (key-value pairs) 的数据类型。 字典是可变的,键必须是唯一的且不可变的 (例如字符串、数字或元组),值可以是任意类型。 可以使用花括号 {} 或 dict() 函数创建字典。

代码:

# 创建字典dict1 = {"name": "Alice", "age": 30, "city": "New York"}dict2 = dict([("name", "Bob"), ("age", 25)]) # 使用键值对列表创建print(f"字典1: {dict1}, 字典2: {dict2}")

结果:

2 访问元素

可以通过键来访问字典中的值

代码:

# 访问元素print(f"姓名: {dict1['name']}, 年龄: {dict1['age']}")

结果:

3 添加/修改元素

可以通过键来添加新的键值对,或者修改已存在的键值对。

代码:

# 添加/修改元素dict1["gender"] = "Female" # 添加新的键值对dict1["age"] = 31 # 修改已存在的键值对print(f"添加/修改元素后的字典1: {dict1}")

结果:

4 删除元素

del:删除指定键的键值对。 pop():删除指定键的键值对,并返回对应的值。 clear():清空字典中的所有键值对。

代码:

# 删除元素del dict1["city"] # 删除键 "city"print(f"del删除元素后的字典1: {dict1}")age = dict1.pop("age") # 删除键 "age" 并返回对应的值print(f"pop删除元素后的字典1: {dict1}, 删除的年龄: {age}")dict1.clear() # 清空字典print(f"clear清空后的字典1: {dict1}")

结果:

5 常用方法

keys():返回字典中所有键的集合。 values():返回字典中所有值的集合。 items():返回字典中所有键值对的集合,每个键值对表示为一个元组。 get():根据键获取值,如果键不存在,返回指定的默认值 (默认为 None),避免 KeyError 异常。

代码:

# 常用方法dict2 = {"name": "Bob", "age": 25, "city": "London"}print(f"所有键: {dict2.keys()}")print(f"所有值: {dict2.values()}")print(f"所有键值对: {dict2.items()}")print(f"获取姓名: {dict2.get('name')}, 获取性别(不存在): {dict2.get('gender', 'Unknown')}") # 使用 get() 方法避免 KeyError

结果:

6 字典推导式

代码:

# 字典推导式squares = {x: x**2 for x in range(5)} # 创建 0-4 的平方字典print(f"0-4的平方字典: {squares}")

结果:

7 案例

①根据某个条件筛选字典中的键值对

代码:

#根据某个条件筛选字典中的键值对def filter_dict(d, min_age):    """    筛选年龄大于 min_age 的人.    Args:        d: 待筛选的字典.        min_age: 最小年龄.    Returns:        筛选后的字典.    """    return {name: age for name, age in d.items() if age > min_age}people = {"Alice": 30, "Bob": 25, "Charlie": 40, "David": 20}print(f"筛选年龄大于28的人: {filter_dict(people, 28)}")

结果:

②统计单词出现的频率

代码:

#统计单词出现的频率def word_frequency(text):    """    统计单词出现的频率.    Args:        text: 文本字符串.    Returns:        单词频率字典.    """    words = text.lower().split()  # 转换为小写并分割成单词列表    frequency = {}    for word in words:        frequency[word] = frequency.get(word, 0) + 1 # 使用 get() 方法    return frequencytext = "This is a test. This is only a test."print(f"单词频率: {word_frequency(text)}")

结果:

③实现一个简单的缓存

代码:

#实现一个简单的缓存cache = {} # 使用字典作为缓存def expensive_function(n):    """    模拟一个耗时的函数.    Args:        n: 输入参数.    Returns:        耗时的计算结果.    """    if n in cache: # 检查缓存        print(f"从缓存中获取结果: {n}")        return cache[n]    else:        print(f"计算结果: {n}")        result = n * 2 # 模拟耗时计算        cache[n] = result # 存储到缓存        return resultprint(expensive_function(5))print(expensive_function(5)) # 从缓存中获取print(expensive_function(10))

结果:

7 应用场景

  • 存储配置信息
  • 缓存数据
  • Web 开发 (例如存储用户信息)
  • 数据分析 (例如统计词频)
  • 表示 JSON 数据  

最新文章

随机文章