当前位置: 首页 > article >正文

【python系列】python数据类型之字典

掌握 Python 字典(Dictionary)数据类型

Python 中的字典(Dictionary)是一种非常重要的数据结构,用于存储键值对。它类似于现实生活中的字典,允许快速查找对应的值。本文将详细介绍字典的定义、常用操作及其扩展,并附带练习题帮助巩固知识。


1. 定义:什么是字典?

字典是 Python 中的一种内置数据类型,用于存储键值对(key-value pairs)。它是无序的可变的,并且键必须是唯一的且不可变(如字符串、数字或元组),而值可以是任意数据类型。

字典的定义使用大括号 {},键值对通过冒号 : 分隔,多个键值对用逗号 , 分隔。

示例

# 定义一个字典
person = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}
print(person)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'New York'}

2. 操作:字典的基本和高级操作

2.1 创建字典

  • 使用大括号直接创建:
    my_dict = {"key1": "value1", "key2": "value2"}
    
  • 使用 dict() 函数创建:
    my_dict = dict(key1="value1", key2="value2")
    

2.2 访问字典中的值

通过键访问字典中的值:

person = {"name": "Alice", "age": 25}
print(person["name"])  # 输出:Alice

访问不存在的键会抛出 KeyError,可以使用 get() 方法避免:

print(person.get("city", "Not Found"))  # 输出:Not Found

2.3 修改字典

person["age"] = 30  # 修改值
person["city"] = "Los Angeles"  # 添加新键值对

2.4 删除字典中的键值对

  • 使用 del 删除:
    del person["age"]
    
  • 使用 pop() 方法:
    city = person.pop("city", "Not Found")
    

2.5 遍历字典

  • 遍历键:
    for key in person.keys():
        print(key)
    
  • 遍历值:
    for value in person.values():
        print(value)
    
  • 遍历键值对:
    for key, value in person.items():
        print(key, value)
    

2.6 字典的常用方法

方法描述
dict.keys()返回字典中所有键
dict.values()返回字典中所有值
dict.items()返回字典中所有键值对
dict.update()更新字典,合并另一个字典的键值对
dict.clear()清空字典

2.7 字典的高级操作

  • 字典推导式:
    squares = {x: x**2 for x in range(5)}
    print(squares)  # 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
    
  • 嵌套字典:
    people = {
        "Alice": {"age": 25, "city": "New York"},
        "Bob": {"age": 30, "city": "San Francisco"}
    }
    print(people["Alice"]["city"])  # 输出:New York
    

3. 总结与练习题

字典是 Python 中强大且灵活的数据结构,适用于需要快速查找、动态更新的场景。通过键值对的方式,字典可以轻松表示复杂数据。掌握字典的基本操作与高级用法,可以极大提升代码效率。

练习题

  1. 基础练习: 创建一个字典存储学生的姓名和成绩,然后打印所有学生的姓名和成绩。

  2. 操作练习: 使用一个字典存储一周的天气信息(例如:{“Monday”: “Sunny”, “Tuesday”: “Rainy”})。

    • 添加周末天气数据
    • 修改某一天的天气
    • 打印所有日期和对应天气
  3. 综合练习: 编写一个程序,统计一段字符串中每个字符出现的次数。例如:

    text = "hello world"
    # 输出:{'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}
    

http://www.kler.cn/a/408602.html

相关文章:

  • YOLOv11融合[NeurlS2022]递归门控卷积gnconv模块及相关改进思路
  • “iOS profile文件与私钥证书文件不匹配”总结打ipa包出现的问题
  • 力扣2388. 将表中的空值更改为前一个值
  • 若依-一个请求中返回多个表的信息
  • webStorm安装
  • 【Android】Service使用方法:本地服务 / 可通信服务 / 前台服务 / 远程服务(AIDL)
  • Vue (一)
  • Linux笔记---进程:进程切换与O(1)调度算法
  • 微前端+qiankun
  • 3DEXPERIENCE软件是干什么的—3DE软件代理商微辰三维
  • WebApis学习笔记,第二节:高级语法
  • 数据结构 (5)栈
  • 问:Spring Boot应用监控组件工具,梳理一下?
  • hhdb数据库介绍(9-30)
  • 【大数据学习 | Spark-Core】详解分区个数
  • strongswan测试流程
  • STM32 UART的DMA与非DMA性能对比
  • LeetCode 135.分发糖果
  • Load-Balanced-Online-OJ(负载均衡式在线OJ)
  • ubuntu16.04在ros使用USB摄像头-解决could not open /dev/video0问题
  • Ubuntu22.04配置强化学习环境及运行相关Demo
  • VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源
  • (免费送源码)计算机毕业设计原创定制:Java+B/S+SSM+Web前端开发技术+IDEA+MySQL+Navicat 有风小院
  • 【热门主题】000060 探索 Windows 11 开发的无限可能
  • 【计算机网络】网段划分
  • clickhouse 分区键的重要性