【Python】普通字典的定义和使用方式

相关链接:【Python】顺序字典(OrderedDict)的定义和使用方式
相关链接:【Python】items()方法的介绍和使用方式
相关链接:【Python】get()方法的介绍和使用方式

在 Python 中,普通字典(通常简称为字典)是一种内置的数据类型,用于存储键值对。字典的键必须是不可变类型(如字符串、数字或元组),而值可以是任意的数据类型。字典是无序的(Python 3.6 以前),但从 Python 3.7 起,字典维护了插入顺序。这使得字典不仅是一种非常灵活的数据结构,还能够在某些应用场景下替代 OrderedDict

定义普通字典的几种方式:

1. 直接使用花括号 {}
python 复制代码
# 空字典
empty_dict = {}

# 带有键值对的字典
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(person)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
2. 使用字典推导式

这是一种通过迭代表达式来创建字典的方式,类似于列表推导式。

python 复制代码
# 基于一组键和一些操作来创建字典
squares = {x: x*x for x in range(6)}
print(squares)  # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
3. 使用构造函数 dict()

可以使用多种方式通过 dict() 构造函数来创建字典:

python 复制代码
# 使用关键字参数
person = dict(name='Alice', age=25, city='New York')
print(person)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 使用键值对序列
pairs = [('name', 'Bob'), ('age', 30), ('city', 'Paris')]
person = dict(pairs)
print(person)  # 输出: {'name': 'Bob', 'age': 30, 'city': 'Paris'}

# 使用两个并行的序列
keys = ['name', 'age', 'city']
values = ['Carol', 22, 'London']
person = dict(zip(keys, values))
print(person)  # 输出: {'name': 'Carol', 'age': 22, 'city': 'London'}

访问和操作字典

字典的操作非常直接,包括访问、修改、添加和删除元素:

python 复制代码
# 访问
print(person['name'])  # 输出: Carol

# 修改
person['age'] = 23

# 添加新键值对
person['profession'] = 'Designer'

# 删除键值对
del person['city']
print(person)  # 输出: {'name': 'Carol', 'age': 23, 'profession': 'Designer'}

字典方法

Python 字典提供了丰富的方法,如 .keys(), .values(), .items(), .get(), .setdefault(), .update() 等,用于更复杂的字典操作。

总结

Python 字典是一种极其有用和灵活的数据结构,适用于需要键值映射的多种应用场景。自 Python 3.7 起,字典维护键的插入顺序,这增加了它的用途,使其在很多情况下能够取代 OrderedDict。对于绝大多数日常编程任务来说,普通字典已经足够使用。

相关推荐
Sirius.z19 小时前
第R6周:LSTM实现糖尿病探索与预测
python
名字还没想好☜19 小时前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
ltl20 小时前
Serverless 数据库弹性理论:Neon 与 Aurora Serverless v2
数据库
·薯条大王20 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
Dxy123931021621 小时前
Python 如何使用 MySQL 的事务
python·mysql
一壶浊酒..1 天前
Scrape Webpack练习
开发语言·javascript·webpack
命运之光1 天前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
命运之光1 天前
【C语言完整代码】图书管理系统:图书馆场景下的增删改查实战
c语言·开发语言
猿长大人1 天前
C# | Serilog 新手入门
开发语言·c#·.net·log
marvelyu1 天前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库