在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字典的键有重要限制:
键必须是不可变类型(字符串、数字、元组)
键不能重复,如果重复,后面的值会覆盖前面的
# 正确的键类型
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}学生信息管理
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("学号不存在")统计词频
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}配置信息存储
# 应用配置
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字典包含了以下内置函数:
| 序号 | 函数及描述 | 实例 |
|---|---|---|
| 1 | len(dict) 计算字典元素个数,即键的总数。 | |
| 2 | str(dict) 输出字典,可以打印的字符串表示。 | |
| 3 | type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。 | |
Python字典包含了以下内置方法:
| 序号 | 函数及描述 |
|---|---|
| 1 | dict.clear() 删除字典内所有元素 |
| 2 | dict.copy() 返回一个字典的浅复制 |
| 3 | dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
| 4 | dict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
| 5 | key in dict 如果键在字典dict里返回true,否则返回false |
| 6 | dict.items() 以列表返回一个视图对象 |
| 7 | dict.keys() 返回一个视图对象 |
| 8 | dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
| 9 | dict.update(dict2) 把字典dict2的键/值对更新到dict里 |
| 10 | dict.values() 返回一个视图对象 |
| 11 | dict.pop(key[,default]) 删除字典 key(键)所对应的值,返回被删除的值。 |
| 12 | dict.popitem() 返回并删除字典中的最后一对键和值。 |
要熟练掌握字典操作,建议:
理解键值对的概念
多练习字典的创建和访问
熟悉常用的字典方法
在实际项目中应用字典
记住,字典是Python中非常高效的数据结构。它通过键来快速查找值,在处理关联数据时特别有用。随着编程经验的积累,你会发现字典在解决实际问题中发挥着重要作用。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!