Python3入门指南Python语言的特点和实际应用Python3环境搭建配置VSCode进行Python开发Python基础语法Python变量与数据类型Python数据类型转换Python解释器使用Python注释使用Python运算符Python数字类型Python字符串操作Python列表操作Python元组使用Python字典使用Python集合使用Python条件控制详解Python循环语句详解Python编程入门实践Python推导式详解Python迭代器和生成器Python with语句详解Python函数详解Python lambda(匿名函数)Python装饰器Python数据结构Python模块和包使用Python中__name__和__main__的用法Python输入输出:从基础到文件操作Python文件操作Python OS模块使用Python错误和异常处理Python面向对象编程Python命名空间和作用域Python虚拟环境:venv详细教程Python类型注解Python标准库常用模块Python正则表达式Python CGI编程Python MySQL(mysql-connector驱动)Python MySQL(PyMySQL驱动)Python网络编程Python发送邮件Python多线程编程Python XML解析Python JSON解析Python日期和时间处理Python操作MongoDBPython urllib库使用Python uWSGI 安装与配置Python pip包管理工具Python operator模块Python math模块Python requests模块HTTP请求Python random模块Python OpenAI库Python AI绘画制作Python statistics模块Python hashlib模块:哈希加密Python量化交易Python pyecharts数据可视化Python Selenium网页自动化Python BeautifulSoup网页数据提取Python Scrapy爬虫框架Python Markdown转HTMLPython sys模块Python Pickle模块:数据存储Python subprocess模块Python queue队列模块Python StringIO内存文件操作Python logging日志记录Python datetime日期时间处理Python re正则表达式Python csv表格数据处理Python threading 多线程编程Python asyncio 异步编程Python PyQt 图形界面开发Python 应用方向和常用库框架

Python字典使用

在Python编程中,字典是一种非常重要的数据类型。字典就像现实生活中的字典一样,通过"键"来查找对应的"值"。这种结构让数据存储和检索变得很高效。


什么是字典

字典用花括号{}表示,包含多个键值对。每个键值对用冒号:分隔,不同的键值对用逗号分隔。

基本格式:

字典名 = {键1: 值1, 键2: 值2, 键3: 值3}

创建一个学生信息的字典:

student = {
    '姓名': '张三',
    '年龄': 20,
    '专业': '计算机科学',
    '成绩': 85.5
}


创建字典

有多种方法创建字典:

# 方法1:直接创建
person = {'姓名': '李四', '城市': '北京'}

# 方法2:创建空字典
empty_dict1 = {}
empty_dict2 = dict()

# 方法3:使用dict()函数
scores = dict(数学=90, 英语=85, 物理=88)

print(person)    # 输出:{'姓名': '李四', '城市': '北京'}
print(scores)    # 输出:{'数学': 90, '英语': 85, '物理': 88}


访问字典值

通过键来访问对应的值:

student = {
    '姓名': '王五',
    '年龄': 22,
    '成绩': 92.5
}

print(student['姓名'])  # 输出:王五
print(student['年龄'])  # 输出:22

如果访问不存在的键,会报错。安全的方法是使用get():

print(student.get('地址'))           # 输出:None(不报错)
print(student.get('地址', '未知'))   # 输出:未知(设置默认值)


修改字典

可以添加新的键值对或修改已有的值:

# 创建字典
book = {
    '书名': 'Python编程',
    '价格': 59.8
}

# 修改值
book['价格'] = 65.0

# 添加新键值对
book['作者'] = '李教授'
book['出版社'] = '科技出版社'

print(book)
# 输出:{'书名': 'Python编程', '价格': 65.0, '作者': '李教授', '出版社': '科技出版社'}


删除字典元素

删除字典元素有几种方法:

product = {
    '名称': '笔记本电脑',
    '价格': 5999,
    '品牌': '华为',
    '颜色': '银色'
}

# 删除指定键值对
del product['颜色']
print(product)  # 输出:{'名称': '笔记本电脑', '价格': 5999, '品牌': '华为'}

# 删除并返回被删除的值
price = product.pop('价格')
print(f"删除的价格:{price}")  # 输出:删除的价格:5999

# 清空字典
product.clear()
print(product)  # 输出:{}

# 删除整个字典
del product


字典键的特性

字典的键有重要限制:

  1. 键必须是不可变类型(字符串、数字、元组)

  2. 键不能重复,如果重复,后面的值会覆盖前面的

# 正确的键类型
good_dict = {
    'name': '张三',      # 字符串
    1: '数字键',         # 数字
    (1, 2): '元组键'     # 元组
}

# 错误的键类型(会报错)
# bad_dict = {
#     ['列表']: '值'      # 列表不能作为键
# }

# 键重复的例子
info = {'姓名': '张三', '姓名': '李四'}
print(info['姓名'])  # 输出:李四(后面的覆盖前面的)


遍历字典

有多种方法遍历字典:

student = {
    '姓名': '赵六',
    '年龄': 21,
    '专业': '数学',
    '成绩': 88
}

# 遍历所有键
for key in student:
    print(f"键:{key}")

# 遍历所有值
for value in student.values():
    print(f"值:{value}")

# 遍历所有键值对
for key, value in student.items():
    print(f"{key}:{value}")


常用字典方法

# 创建示例字典
scores = {'数学': 90, '英语': 85, '物理': 88}

# 获取所有键
keys = scores.keys()
print(keys)  # 输出:dict_keys(['数学', '英语', '物理'])

# 获取所有值
values = scores.values()
print(values)  # 输出:dict_values([90, 85, 88])

# 获取所有键值对
items = scores.items()
print(items)  # 输出:dict_items([('数学', 90), ('英语', 85), ('物理', 88)])

# 更新字典
new_scores = {'化学': 92, '英语': 87}  # 英语成绩更新
scores.update(new_scores)
print(scores)  # 输出:{'数学': 90, '英语': 87, '物理': 88, '化学': 92}


字典的实际应用

  1. 学生信息管理

students = {
    '001': {'姓名': '张三', '年龄': 20, '成绩': 85},
    '002': {'姓名': '李四', '年龄': 21, '成绩': 92},
    '003': {'姓名': '王五', '年龄': 19, '成绩': 78}
}

# 查找学生信息
student_id = '002'
if student_id in students:
    info = students[student_id]
    print(f"学号{student_id}:{info['姓名']},成绩:{info['成绩']}")
else:
    print("学号不存在")
  1. 统计词频

text = "苹果 香蕉 苹果 橙子 香蕉 苹果 葡萄"
words = text.split()

word_count = {}
for word in words:
    word_count[word] = word_count.get(word, 0) + 1

print(word_count)  # 输出:{'苹果': 3, '香蕉': 2, '橙子': 1, '葡萄': 1}
  1. 配置信息存储

# 应用配置
app_config = {
    'database': {
        'host': 'localhost',
        'port': 3306,
        'user': 'admin',
        'password': '123456'
    },
    'server': {
        'host': '0.0.0.0',
        'port': 8000,
        'debug': True
    }
}

# 访问配置信息
db_host = app_config['database']['host']
server_port = app_config['server']['port']
print(f"数据库地址:{db_host},服务端口:{server_port}")


字典推导式

创建字典的简洁方法:

# 创建数字平方字典
squares = {x: x**2 for x in range(1, 6)}
print(squares)  # 输出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# 转换列表为字典
names = ['张三', '李四', '王五']
scores = [85, 92, 78]
student_scores = {name: score for name, score in zip(names, scores)}
print(student_scores)  # 输出:{'张三': 85, '李四': 92, '王五': 78}


嵌套字典

字典中可以包含其他字典:

# 班级信息
class_info = {
    '班级': '三年级二班',
    '班主任': '张老师',
    '学生': {
        '001': {'姓名': '小明', '年龄': 10},
        '002': {'姓名': '小红', '年龄': 9},
        '003': {'姓名': '小刚', '年龄': 10}
    }
}

# 访问嵌套数据
print(f"班级:{class_info['班级']}")
print(f"班主任:{class_info['班主任']}")
print(f"学生数量:{len(class_info['学生'])}")

# 遍历所有学生
for student_id, info in class_info['学生'].items():
    print(f"学号{student_id}:{info['姓名']},年龄:{info['年龄']}")


字典内置函数&方法

Python字典包含了以下内置函数:

序号函数及描述实例
1len(dict)
计算字典元素个数,即键的总数。
>>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> len(tinydict)
3
2str(dict)
输出字典,可以打印的字符串表示。
>>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> str(tinydict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
3type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型。
>>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> type(tinydict)
<class 'dict'>

Python字典包含了以下内置方法:

序号函数及描述
1dict.clear()
删除字典内所有元素
2dict.copy()
返回一个字典的浅复制
3dict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4dict.get(key, default=None)
返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict
如果键在字典dict里返回true,否则返回false
6dict.items()
以列表返回一个视图对象
7dict.keys()
返回一个视图对象
8dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)
把字典dict2的键/值对更新到dict里
10dict.values()
返回一个视图对象
11dict.pop(key[,default])
删除字典 key(键)所对应的值,返回被删除的值。
12dict.popitem()
返回并删除字典中的最后一对键和值。


学习建议

要熟练掌握字典操作,建议:

  1. 理解键值对的概念

  2. 多练习字典的创建和访问

  3. 熟悉常用的字典方法

  4. 在实际项目中应用字典

记住,字典是Python中非常高效的数据结构。它通过键来快速查找值,在处理关联数据时特别有用。随着编程经验的积累,你会发现字典在解决实际问题中发挥着重要作用。


本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!

链接: https://fly63.com/course/36_2086

目录选择