主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
Python

Python 基础

Python 主页
Python 概述
Python 历史
Python 功能
Python 与 C++
Python Hello World
Python 应用领域
Python 解释器及其模式
Python 环境设置
Python 虚拟环境
Python 语法
Python 变量
Python 数据类型
Python 类型转换
Python Unicode 系统
Python 文字
Python 运算符
Python 算术运算符
Python 比较运算符
Python 赋值运算符
Python 逻辑运算符
Python 位运算符
Python 成员运算符
Python 身份运算符
Python 运算符优先级
Python 注释
Python 用户输入
Python 数字
Python 布尔值

Python 控制语句

Python 控制流
Python 决策
Python if 语句
Python if-else 语句
Python 嵌套 if 语句
Python match-case 语句
Python 循环
Python For 循环
Python for-else 循环
Python while 循环
Python break 语句
Python Continue 语句
Python pass 语句
Python 嵌套循环

Python 函数和模块

Python 函数
Python 默认参数
Python 关键字参数
Python 关键字专用参数
Python 位置参数
Python 仅限位置参数
Python 任意或可变长度参数
Python 变量作用域
Python 函数注释
Python 模块
Python 内置函数

Python 字符串

Python 字符串
Python 字符串切片
Python 字符串修改
Python 字符串连接
Python 字符串格式化
Python 转义字符
Python 字符串方法
Python 字符串练习

Python 列表

Python 列表
Python 访问列表项
Python 更改列表项
Python 添加列表项
Python 删除列表项
Python 循环列表
Python 列表推导式
Python 排序列表
Python 复制列表
Python 合并列表
Python 列表方法
Python 列表练习

Python 元组

Python 元组
Python 访问元组项
Python 更新元组
Python 解包元组项
Python 循环元组
Python 合并元组
Python 元组方法
Python 元组练习

Python 集合

Python 集合
Python 访问集合项
Python 添加集合项
Python 删除集合项
Python 循环集合
Python 合并集合
Python 复制集合
Python 集合运算符
Python 集合方法
Python 集合练习

Python 字典

Python 字典
Python 访问字典项
Python 更改字典项
Python 添加字典项
Python 移除字典项
Python 字典视图对象
Python 循环字典
Python 复制字典
Python 嵌套字典
Python 字典方法
Python 字典练习

Python 数组

Python 数组
Python 访问数组项
Python 添加数组项
Python 移除数组项
Python 循环数组
Python 复制数组
Python 反转数组
Python 排序数组
Python 合并数组
Python 数组方法
Python 数组练习

Python 文件处理

Python 文件处理
Python 文件写入
Python 文件读取
Python 重命名和删除文件
Python 目录
Python 文件方法
Python 文件/目录方法
Python OS.Path 方法

Python 面向对象编程

Python OOP 概念
Python 类和对象
Python 类属性
Python 类方法
Python 静态方法
Python 构造函数
Python 访问修饰符
Python 继承
Python 多态
Python 方法重写
Python 方法重载
Python 动态绑定
Python 动态类型
Python 抽象
Python 封装
Python 接口
Python 包
Python 内部类
Python 匿名类和对象
Python 单例类
Python 包装器类
Python 枚举
Python 反射

Python 错误和异常

Python 语法错误
Python 异常处理
Python Try-Except
Python Try-Finally
Python 抛出异常
Python 异常链
Python 嵌套 try
Python 用户定义异常
Python 日志记录
Python 断言
Python 内置异常

Python 多线程

Python 多线程
Python 线程生命周期
Python 创建线程
Python 启动线程
Python 合并线程
Python 命名线程
Python 线程调度
Python 线程池
Python 主线程
Python 线程优先级
Python 守护线程
Python 线程同步

Python 同步

Python 线程间通信
Python 死锁
Python 中断线程

Python 网络

Python 网络编程
Python 套接字编程
Python URL 处理
Python 泛型

Python 杂项

Python Date and Time
Python math模块
Python 迭代器
Python 生成器
Python 闭包
Python 装饰器
Python 递归
Python 正则表达式
Python Pip
Python 数据库访问
Python 弱引用
Python 序列化
Python 模板技术
Python 输出格式化
Python 性能测量
Python 数据压缩
Python 通用网关接口
Python XML 处理
Python 用户界面(GUI)
Python 命令行参数
Python Docstrings
Python JSON
Python 发送电子邮件
Python 进一步扩展
Python 工具/实用程序
Python GUI

Python 高级概念

Python 抽象基类
Python 自定义异常
Python 高阶函数
Python 对象的内部机制
Python 内存管理
Python 元类
Python 元编程
Python 模拟与桩
Python 猴子补丁
Python 信号处理
Python 类型提示
Python 进行自动化
Python Humanize包
Python 上下文管理器
Python 协程
Python 描述符
Python 内存泄漏
Python 不可变数据结构

基础

Python 主页
Python 概述
Python 历史
Python 功能
Python 与 C++
Python Hello World
Python 应用领域
Python 解释器及其模式
Python 环境设置
Python 虚拟环境
Python 语法
Python 变量
Python 数据类型
Python 类型转换
Python Unicode 系统
Python 文字
Python 运算符
Python 算术运算符
Python 比较运算符
Python 赋值运算符
Python 逻辑运算符
Python 位运算符
Python 成员运算符
Python 身份运算符
Python 运算符优先级
Python 注释
Python 用户输入
Python 数字
Python 布尔值

控制语句

Python 控制流
Python 决策
Python if 语句
Python if-else 语句
Python 嵌套 if 语句
Python match-case 语句
Python 循环
Python For 循环
Python for-else 循环
Python while 循环
Python break 语句
Python Continue 语句
Python pass 语句
Python 嵌套循环

函数和模块

Python 函数
Python 默认参数
Python 关键字参数
Python 关键字专用参数
Python 位置参数
Python 仅限位置参数
Python 任意或可变长度参数
Python 变量作用域
Python 函数注释
Python 模块
Python 内置函数

字符串

Python 字符串
Python 字符串切片
Python 字符串修改
Python 字符串连接
Python 字符串格式化
Python 转义字符
Python 字符串方法
Python 字符串练习

列表

Python 列表
Python 访问列表项
Python 更改列表项
Python 添加列表项
Python 删除列表项
Python 循环列表
Python 列表推导式
Python 排序列表
Python 复制列表
Python 合并列表
Python 列表方法
Python 列表练习

元组

Python 元组
Python 访问元组项
Python 更新元组
Python 解包元组项
Python 循环元组
Python 合并元组
Python 元组方法
Python 元组练习

集合

Python 集合
Python 访问集合项
Python 添加集合项
Python 删除集合项
Python 循环集合
Python 合并集合
Python 复制集合
Python 集合运算符
Python 集合方法
Python 集合练习

字典

Python 字典
Python 访问字典项
Python 更改字典项
Python 添加字典项
Python 移除字典项
Python 字典视图对象
Python 循环字典
Python 复制字典
Python 嵌套字典
Python 字典方法
Python 字典练习

数组

Python 数组
Python 访问数组项
Python 添加数组项
Python 移除数组项
Python 循环数组
Python 复制数组
Python 反转数组
Python 排序数组
Python 合并数组
Python 数组方法
Python 数组练习

文件处理

Python 文件处理
Python 文件写入
Python 文件读取
Python 重命名和删除文件
Python 目录
Python 文件方法
Python 文件/目录方法
Python OS.Path 方法

面向对象编程

Python OOP 概念
Python 类和对象
Python 类属性
Python 类方法
Python 静态方法
Python 构造函数
Python 访问修饰符
Python 继承
Python 多态
Python 方法重写
Python 方法重载
Python 动态绑定
Python 动态类型
Python 抽象
Python 封装
Python 接口
Python 包
Python 内部类
Python 匿名类和对象
Python 单例类
Python 包装器类
Python 枚举
Python 反射

错误和异常

Python 语法错误
Python 异常处理
Python Try-Except
Python Try-Finally
Python 抛出异常
Python 异常链
Python 嵌套 try
Python 用户定义异常
Python 日志记录
Python 断言
Python 内置异常

多线程

Python 多线程
Python 线程生命周期
Python 创建线程
Python 启动线程
Python 合并线程
Python 命名线程
Python 线程调度
Python 线程池
Python 主线程
Python 线程优先级
Python 守护线程
Python 线程同步

同步

Python 线程间通信
Python 死锁
Python 中断线程

网络

Python 网络编程
Python 套接字编程
Python URL 处理
Python 泛型

杂项

Python Date and Time
Python math模块
Python 迭代器
Python 生成器
Python 闭包
Python 装饰器
Python 递归
Python 正则表达式
Python Pip
Python 数据库访问
Python 弱引用
Python 序列化
Python 模板技术
Python 输出格式化
Python 性能测量
Python 数据压缩
Python 通用网关接口
Python XML 处理
Python 用户界面(GUI)
Python 命令行参数
Python Docstrings
Python JSON
Python 发送电子邮件
Python 进一步扩展
Python 工具/实用程序
Python GUI

高级概念

Python 抽象基类
Python 自定义异常
Python 高阶函数
Python 对象的内部机制
Python 内存管理
Python 元类
Python 元编程
Python 模拟与桩
Python 猴子补丁
Python 信号处理
Python 类型提示
Python 进行自动化
Python Humanize包
Python 上下文管理器
Python 协程
Python 描述符
Python 内存泄漏
Python 不可变数据结构

Python 字典


上一章 下一章

在 Python 中,字典是一种内置的数据类型,它以键值对的形式存储数据。它是一个无序的、可变的且可索引的集合。每个字典中的键是唯一的,并映射到一个值。字典通常用于存储相关数据,例如与特定实体或对象相关的信息,在这里你可以根据键快速检索值。

Python 的字典是映射类型的一个例子。映射对象将一个对象的值映射到另一个对象。为了建立键与值之间的映射关系,在两者之间使用冒号(:)符号。

每个键值对由逗号分隔,并包含在花括号 {} 内。键和值在每一对中用冒号(:)分隔,形成 key:value 结构。

下面是一些 Python 字典对象的例子:

capitals = {"Maharashtra":"Mumbai", "Gujarat":"Gandhinagar", "Telangana":"Hyderabad", "Karnataka":"Bengaluru"}
numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}

字典的关键特性如下:

  • 无序:字典中的元素没有特定的顺序。在 Python 版本 3.7 之前,字典不会保持插入顺序。从 Python 3.7 开始,字典作为语言特性保持插入顺序。
  • 可变:创建后可以更改、添加或移除项。
  • 索引:尽管字典没有数字索引,它们使用键作为索引来访问关联的值。
  • 唯一键:字典中的每个键必须是唯一的。如果你试图给现有的键赋值,旧的值将被新值替换。
  • 异质性:字典中的键和值可以是任何数据类型。
示例 1

只有数字、字符串或元组可以用作键。所有这些都是不可变的。你可以使用任何类型的对象作为值。因此,以下定义的字典也是有效的:

d1 = {"Fruit":["Mango","Banana"], "Flower":["Rose", "Lotus"]}
d2 = {('India, USA'):'Countries', ('New Delhi', 'New York'):'Capitals'}
print(d1)
print(d2)

输出结果为:

{'Fruit': ['Mango', 'Banana'], 'Flower': ['Rose', 'Lotus']}
{'India, USA': 'Countries', ('New Delhi', 'New York'): 'Capitals'}
示例 2

Python 不接受列表作为键,并会引发 TypeError。

d1 = {["Mango","Banana"]:"Fruit", "Flower":["Rose", "Lotus"]}
print(d1)

这将引发 TypeError:

Traceback (most recent call last):
   File "C:\Users\Sairam\PycharmProjects\pythonProject\main.py", line 8, in <module>
d1 = {["Mango","Banana"]:"Fruit", "Flower":["Rose", "Lotus"]}
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: unhashable type: 'list'
示例 3

你可以给字典中的多个键分配相同的值,但一个键不能出现多次。

d1 = {"Banana":"Fruit", "Rose":"Flower", "Lotus":"Flower", "Mango":"Fruit"}
d2 = {"Fruit":"Banana","Flower":"Rose", "Fruit":"Mango", "Flower":"Lotus"}
print(d1)
print(d2)

输出结果为:

{'Banana': 'Fruit', 'Rose': 'Flower', 'Lotus': 'Flower', 'Mango': 'Fruit'}
{'Fruit': 'Mango', 'Flower': 'Lotus'}

创建字典

可以通过在花括号 {} 内放置一个由逗号分隔的键值对序列来创建字典,其中冒号(:)分隔每个键及其关联值。或者,也可以使用 dict() 函数。

示例

下面的例子演示了如何使用花括号和 dict() 函数创建一个名为 student_info 的字典:

# 使用花括号创建字典
sports_player = {
   "Name": "Sachin Tendulkar",
   "Age": 48,
   "Sport": "Cricket"
}
print("使用花括号创建的字典:", sports_player)

# 使用 dict() 函数创建字典
student_info = dict(name="Alice", age=21, major="Computer Science")
print("使用 dict() 创建的字典:", student_info)

输出结果为:

使用花括号创建的字典: {'Name': 'Sachin Tendulkar', 'Age': 48, 'Sport': 'Cricket'}
使用 dict() 创建的字典: {'name': 'Alice', 'age': 21, 'major': 'Computer Science'}

访问字典项

可以使用方括号 [] 或 get() 方法来访问与特定键相关联的值:

student_info = {
   "name": "Alice",
   "age": 21,
   "major": "Computer Science"
}

# 使用方括号访问值
name = student_info["name"]
print("姓名:", name)

# 使用 get() 方法访问值
age = student_info.get("age")
print("年龄:", age)

得到的输出结果为:

姓名: Alice
年龄: 21

修改字典项

可以修改特定键关联的值或添加新的键值对:

student_info = {
   "name": "Alice",
   "age": 21,
   "major": "Computer Science"
}

# 修改现有键值对
student_info["age"] = 22

# 添加新的键值对
student_info["graduation_year"] = 2023
print("修改后的字典:", student_info)

输出结果为:

修改后的字典: {'name': 'Alice', 'age': 22, 'major': 'Computer Science', 'graduation_year': 2023}

移除字典项

可以使用 del 语句、pop() 方法或 popitem() 方法来移除项:

student_info = {
   "name": "Alice",
   "age": 22,
   "major": "Computer Science",
   "graduation_year": 2023
}

# 使用 del 语句移除项
del student_info["major"]

# 使用 pop() 方法移除项
graduation_year = student_info.pop("graduation_year")

print(student_info)

得到的输出结果为:

{'name': 'Alice', 'age': 22}

遍历字典

可以使用循环遍历字典中的键、值或键值对:

student_info = {
   "name": "Alice",
   "age": 22,
   "major": "Computer Science",
   "graduation_year": 2023
}

# 遍历键
for key in student_info:
   print("键:", key, student_info[key])

# 遍历值
for value in student_info.values():
   print("值:", value)

# 遍历键值对
for key, value in student_info.items():
   print("键:值:", key, value)

执行上述代码后,我们得到的输出结果为:

键: name Alice
键: age 22
键: major Computer Science
键: graduation_year 2023
值: Alice
值: 22
值: Computer Science
值: 2023
键:值: name Alice
键:值: age 22
键:值: major Computer Science
键:值: graduation_year 2023

字典键的属性

字典的值没有限制。它们可以是任意的 Python 对象,无论是标准对象还是用户定义的对象。然而,对于键来说则不是这样。

关于字典键有两个重要的点需要注意:

  • 允许多个条目共享同一键是不允许的。也就是说不允许重复的键。当赋值时遇到重复键,最后的赋值将获胜。例如:
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print("dict['Name']: ", dict['Name'])

执行上述代码,产生的结果为:

dict['Name']:  Manni
  • 键必须是不可变的。这意味着你可以使用字符串、数字或元组作为字典的键,但像 ['key'] 这样的东西是不允许的。下面是一个简单的例子:
dict = {['Name']: 'Zara', 'Age': 7}
print("dict['Name']: ", dict['Name'])

执行上述代码,产生的结果为:

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7};
TypeError: unhashable type: 'list'

Python 字典操作符

在 Python 中,定义了以下操作符用于与字典操作数一起使用。在示例中,使用了以下字典对象:

d1 = {'a': 2, 'b': 4, 'c': 30}
d2 = {'a1': 20, 'b1': 40, 'c1': 60}
操作符 描述 示例
dict[key] 提取/分配映射到键的值 print(d1['b']) 提取 4
d1['b'] = 'Z' 分配新值给键 'b' d1['b'] = 'Z' 分配新值
`dict1 dict2` 两个字典对象的并集,返回新对象
{'a': 2, 'b': 4, 'c': 30, 'a1': 20, 'b1': 40, 'c1': 60}    
`dict1 =dict2` 增强字典并集运算符
{'a': 2, 'b': 4, 'c': 30, 'a1': 20, 'b1': 40, 'c1': 60}    

Python 字典方法

Python 包含以下字典方法:

序号 方法 描述
1 dict.clear() 移除字典 dict 中的所有元素
2 dict.copy() 返回字典 dict 的浅拷贝
3 dict.fromkeys() 创建一个新的字典,键来自 seq 并设置值为 value
4 dict.get(key, default=None) 对于键 key,如果不在字典中则返回默认值 default
5 dict.has_key(key) 如果键 key 在字典 dict 中则返回 True,否则返回 False(注:此方法已弃用,请使用 key in dict 替代)
6 dict.items() 返回字典 dict 的 (key, value) 对的列表
7 dict.keys() 返回字典 dict 的键的列表
8 dict.setdefault(key, default=None) 类似于 get(),但如果没有 key 则会在字典中设置 dict[key]=default
9 dict.update(dict2) 将字典 dict2 的键值对加入到 dict 中
10 dict.values() 返回字典 dict 的值的列表

内置函数与字典

以下是可以在字典上使用的内置函数:

序号 函数 描述
1 len(dict) 返回字典的长度,即字典中的项数
2 str(dict) 产生字典的可打印字符串表示形式
3 type(variable) 返回变量的类型;如果是字典,则返回字典类型
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图