### Python3 中 dict(字典)的使用方法详解 #### 一、字典的基本概念与特点 在Python中,字典是一种可变容器模型的数据类型,它存储的是键值对(key-value)形式的数据。字典的每个键值对用冒号(:)分割,每对之间用逗号(,)分隔,整个字典包括在花括号({})之中。 字典具有以下特性: 1. 字典是无序的,即元素没有明确的顺序。 2. 键必须不可变,通常使用数字、字符串或元组。 3. 值可以是任何数据类型。 4. 字典中的键是唯一的,重复的键会被最新的值覆盖。 #### 二、字典的创建 可以通过以下几种方式创建字典: - 直接使用大括号 {} - 使用dict()构造函数 **示例**: ```python # 创建字典 student = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} # 使用dict()构造函数 student2 = dict(num1='Tom', num2='Lucy', num3='Sam') ``` #### 三、字典的方法 ##### 1. `clear()` - 清空字典内容 该方法用于移除字典中的所有元素,使字典变成空字典。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} stu.clear() print(stu) # 输出:{} ``` ##### 2. `copy()` - 拷贝字典 该方法返回一个浅拷贝的字典。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} stu2 = stu.copy() print(stu2) # 输出:{'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} ``` ##### 3. `fromkeys()` - 从序列创建字典 `fromkeys()` 方法用于从一个序列和一个值创建字典。 **示例**: ```python names = ['tom', 'lucy', 'sam'] new_dict = dict.fromkeys(names, 25) print(new_dict) # 输出:{'tom': 25, 'lucy': 25, 'sam': 25} ``` ##### 4. `get()` - 获取字典中指定键的值 该方法用于获取指定键的值,如果键不存在,则返回默认值。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} print(stu.get('num2')) # 输出:Lucy print(stu.get('num4', 'Not Found')) # 输出:Not Found ``` ##### 5. `items()` - 返回字典的所有键值对 该方法返回一个迭代器,其中包含了字典的所有键值对。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} print(stu.items()) # 输出:dict_items([('num1', 'Tom'), ('num2', 'Lucy'), ('num3', 'Sam')]) ``` ##### 6. `keys()` - 获取字典的所有键 该方法返回一个包含字典所有键的视图对象。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} print(stu.keys()) # 输出:dict_keys(['num1', 'num2', 'num3']) ``` ##### 7. `pop()` - 删除并返回指定键的值 该方法删除字典中指定键的条目并返回相应的值。如果键不存在,则返回默认值。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} name = stu.pop('num2') print(name, stu) # 输出:Lucy {'num1': 'Tom', 'num3': 'Sam'} ``` ##### 8. `popitem()` - 删除并返回任意键值对 该方法随机删除并返回字典中的一个键值对。在Python3.7+版本中,按插入顺序返回最后一个键值对。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} name = stu.popitem() print(name, stu) # 输出:('num3', 'Sam') {'num1': 'Tom', 'num2': 'Lucy'} ``` ##### 9. `setdefault()` - 设置或获取指定键的值 该方法用于获取字典中指定键的值,如果键不存在,则将键设置为指定值。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} name = stu.setdefault('num5', 'New Value') print(name, stu) # 输出:New Value {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam', 'num5': 'New Value'} ``` ##### 10. `update()` - 更新字典 该方法用于将一个字典或多个键值对加入到另一个字典中。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} stu.update({'num4': 'Ben'}) print(stu) # 输出:{'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam', 'num4': 'Ben'} ``` #### 四、字典的遍历 字典可以通过多种方式遍历,如遍历键、值或键值对等。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} # 遍历键 for key in stu: print(key) # 遍历值 for value in stu.values(): print(value) # 遍历键值对 for key, value in stu.items(): print(f"Key: {key}, Value: {value}") ``` #### 五、字典排序 字典本身是无序的,但可以通过排序函数对字典进行排序操作。 **示例**: ```python stu = {'num1': 'Tom', 'num2': 'Lucy', 'num3': 'Sam'} # 按键排序 sorted_stu = sorted(stu.items()) print(sorted_stu) # 按值排序 sorted_stu_by_value = sorted(stu.items(), key=lambda item: item[1]) print(sorted_stu_by_value) ``` 通过上述介绍,我们可以看到Python3中字典的使用方法非常丰富且实用。掌握这些方法可以帮助我们在实际开发中更加高效地处理数据结构问题。
- 粉丝: 3
- 资源: 946
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Neo4j图数据库的医疗知识图谱智能问答机器人详细文档+全部资料+优秀项目.zip
- 基于rasa框架的知识图谱问答详细文档+全部资料+优秀项目.zip
- 基于streamlit+neo4j构建的简易知识图谱问答系统详细文档+全部资料+优秀项目.zip
- 基于大语言模型API(本地或商用API)的外挂知识库问答系统(附neo4j实现知识图谱)详细文档+全部资料+优秀项目.zip
- 基于大模型 RAG 知识库与知识图谱的问答平台。详细文档+全部资料+优秀项目.zip
- 基于农业领域知识图谱的构建,包括数据爬取(百度百科)、数据分类、利用结构化数据生成三元组、非基于依存句法分析(主谓关系等)的关系抽取和利用neo4j生成可视化知
- 基于英雄联盟知识图谱的问答详细文档+全部资料+优秀项目.zip
- 基于知识图谱的出版物检索系统详细文档+全部资料+优秀项目.zip
- 基于突发事件本体模型和知识图谱的构建详细文档+全部资料+优秀项目.zip
- 基于知识图谱的电影智能问答。neo4j构建电影图谱,spark ml完成问答意图分类,将问答语句转为cypher查询语句完成匹配查询。详细文档+全部资料+优秀项目.zip
- 基于知识图谱的单轮对话系统详细文档+全部资料+优秀项目.zip
- 基于知识图谱的古诗词问答系统,数据库使用neo4j详细文档+全部资料+优秀项目.zip
- 基于知识图谱的会展知识问答系统详细文档+全部资料+优秀项目.zip
- 基于知识图谱的科技政策管理系统详细文档+全部资料+优秀项目.zip
- 基于知识图谱的林业法律法规问答详细文档+全部资料+优秀项目.zip
- 基于知识图谱的推荐算法-KGCN实现详细文档+全部资料+优秀项目.zip