「Python系列」Python字典

文章目录

  • 一、Python字典
    • 创建字典
    • 访问字典中的元素
    • 修改字典
    • 删除字典中的元素
    • 遍历字典
    • 字典推导式
  • 二、Python字典内置函数&方法
    • 内置函数
    • 字典方法
  • 三、Python简介
  • 四、相关链接

一、Python字典

在Python中,字典(dict)是一个无序的键值对集合。每个键在字典中都是唯一的,而值可以是任何类型的数据(如列表、字典、整数、字符串等)。字典在Python中非常常用,因为它们提供了一种快速查找和访问数据的方法。

字典的键(key)是唯一的,并且不可变(通常是字符串或数字),而值(value)可以是任何类型的数据。字典在内存中存储为哈希表,因此访问字典中的元素通常比访问列表或数组中的元素要快。

创建字典

可以使用大括号 {}dict() 函数来创建字典。

# 使用大括号创建字典
my_dict = {'apple': 1, 'banana': 2, 'cherry': 3}# 使用dict()函数创建字典
another_dict = dict(apple=1, banana=2, cherry=3)# 两种创建方式的结果是一样的
print(my_dict)        # 输出: {'apple': 1, 'banana': 2, 'cherry': 3}
print(another_dict)   # 输出: {'apple': 1, 'banana': 2, 'cherry': 3}

访问字典中的元素

可以通过键来访问字典中的值。

# 访问字典中的元素
print(my_dict['apple'])  # 输出: 1# 如果键不存在,会抛出KeyError异常
# print(my_dict['orange'])  # 这将抛出 KeyError: 'orange'# 可以使用get()方法来避免KeyError异常
print(my_dict.get('orange', 'Default value'))  # 输出: 'Default value'

修改字典

可以通过指定键来修改字典中的值。

# 修改字典中的值
my_dict['apple'] = 5
print(my_dict)  # 输出: {'apple': 5, 'banana': 2, 'cherry': 3}# 添加新的键值对
my_dict['orange'] = 4
print(my_dict)  # 输出: {'apple': 5, 'banana': 2, 'cherry': 3, 'orange': 4}

删除字典中的元素

可以使用 del 语句或 pop() 方法来删除字典中的元素。

# 使用del语句删除键值对
del my_dict['banana']
print(my_dict)  # 输出: {'apple': 5, 'cherry': 3, 'orange': 4}# 使用pop()方法删除键值对,并返回被删除的值
removed_value = my_dict.pop('orange')
print(removed_value)  # 输出: 4
print(my_dict)  # 输出: {'apple': 5, 'cherry': 3}

遍历字典

可以使用 keys()values()items() 方法来遍历字典的键、值或键值对。

# 遍历字典的键
for key in my_dict.keys():print(key)# 遍历字典的值
for value in my_dict.values():print(value)# 遍历字典的键值对
for key, value in my_dict.items():print(key, value)

字典推导式

字典推导式是一种简洁的方式来创建字典。

# 创建一个新字典,将原字典的键和值互换
new_dict = {v: k for k, v in my_dict.items()}
print(new_dict)  # 输出: {5: 'apple', 3: 'cherry'}# 创建一个字典,包含原字典中所有值的平方
squared_dict = {k: v**2 for k, v in my_dict.items()}
print(squared_dict)  # 输出: {'apple': 25, 'cherry': 9}

字典是Python中非常强大且灵活的数据结构,它们提供了从键快速检索值的能力,是处理数据时经常使用的工具。

二、Python字典内置函数&方法

Python字典(dict)提供了许多内置函数和方法,这些函数和方法可以用于创建、访问、修改、删除和遍历字典。以下是一些常用的字典内置函数和方法:

内置函数

  1. dict():创建一个新的空字典或从一个可迭代对象(如键值对序列)创建字典。
# 创建一个空字典
empty_dict = dict()# 从键值对序列创建字典
dict_from_pairs = dict([('a', 1), ('b', 2), ('c', 3)])# 从关键字参数创建字典
dict_from_kwargs = dict(a=1, b=2, c=3)
  1. len():返回字典中键值对的数量。
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(len(my_dict))  # 输出: 3

字典方法

Python字典(dict)提供了许多内置方法来操作字典数据。以下是一些常用的字典内置方法:

  1. clear()

清除字典中的所有项。

my_dict = {'a': 1, 'b': 2, 'c': 3}
my_dict.clear()
print(my_dict)  # 输出: {}
  1. copy()

返回字典的一个浅复制(浅拷贝)。

my_dict = {'a': 1, 'b': 2, 'c': 3}
new_dict = my_dict.copy()
print(new_dict)  # 输出: {'a': 1, 'b': 2, 'c': 3}
  1. get(key, default=None)

返回指定键的值。如果键不存在,则返回默认值(默认为None)。

my_dict = {'a': 1, 'b': 2}
print(my_dict.get('a'))     # 输出: 1
print(my_dict.get('c'))     # 输出: None
print(my_dict.get('c', 0))  # 输出: 0
  1. items()

返回字典中所有键值对的视图对象。

my_dict = {'a': 1, 'b': 2}
for key, value in my_dict.items():print(key, value)
# 输出:
# a 1
# b 2
  1. keys()

返回字典中所有键的视图对象。

my_dict = {'a': 1, 'b': 2}
for key in my_dict.keys():print(key)
# 输出:
# a
# b
  1. pop(key, default=None)

移除并返回指定键的值。如果键不存在,则返回默认值(默认为None)。

my_dict = {'a': 1, 'b': 2}
print(my_dict.pop('a'))  # 输出: 1
print(my_dict)           # 输出: {'b': 2}# 如果键不存在,返回默认值
print(my_dict.pop('c', 0))  # 输出: 0
  1. popitem()

移除并返回字典中的最后一对键值对。

my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.popitem())  # 输出: ('c', 3)
print(my_dict)            # 输出: {'a': 1, 'b': 2}
  1. setdefault(key, default=None)

如果键存在于字典中,返回键的值。如果键不存在,则将该键设置为默认值,并返回默认值。

my_dict = {'a': 1, 'b': 2}
print(my_dict.setdefault('a', 0))  # 输出: 1
print(my_dict.setdefault('c', 0))  # 输出: 0,并添加键值对'c': 0到字典中
print(my_dict)                     # 输出: {'a': 1, 'b': 2, 'c': 0}
  1. update(other_dict)

用另一个字典更新当前字典。如果键已存在,则更新其值。

my_dict = {'a': 1, 'b': 2}
new_items = {'b': 3, 'c': 4}
my_dict.update(new_items)
print(my_dict)  # 输出: {'a': 1, 'b': 3, 'c': 4}
  1. values()

返回字典中所有值的视图对象。

my_dict = {'a': 1, 'b': 2}
for value in my_dict.values():print(value)
# 输出:
# 1
# 2

三、Python简介

Python 是一种高级的、动态类型的编程语言,它的设计哲学强调代码的可读性和简洁性。Python 最初由荷兰国家数学与计算机科学研究中心的吉多·范罗苏姆于1989年发明,作为一种叫做 ABC 语言的替代品。Python 的名字来源于一个叫做Monty Python的喜剧团体的爱好者。

Python 是一种解释型语言,这意味着在开发过程中没有编译这个环节。Python 的语法简洁清晰,强制使用空白符作为语句缩进,这有助于提高代码的可读性。Python 还支持面向对象编程,能够轻松地定义和使用类和对象。

Python 是一种自由软件,其源代码和解释器遵循 GPL(GNU General Public License)协议。Python 的标准库提供了丰富的功能,包括文件I/O、网络编程、数据库交互等。此外,Python 的第三方库非常丰富,涵盖了科学计算、数据分析、机器学习、Web 开发等多个领域。

Python 在各个编程语言中比较适合新手学习,它常被用于教育和初学者入门。然而,Python 的强大功能和灵活性也使其成为大型项目的理想选择。在数据科学、人工智能、网络爬虫、自动化运维等领域,Python 都有着广泛的应用。

四、相关链接

  1. Python下载安装中心
  2. Python官网
  3. Python软件下载
  4. 「Python系列」Python简介及案例
  5. 「Python系列」Python基础语法/数据类型
  6. 「Python系列」Python解释器
  7. 「Python系列」Python运算符
  8. 「Python系列」Python数据结构
  9. 「Python系列」Python元组
  10. 「Python系列」Python集合
  11. 「Python系列」Python列表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot/ssmHome F家居系统Java家居商城购物管理系统

springboot/ssmHome F家居系统Java家居商城购物管理系统 开发语言:Java 框架:springboot(可改ssm) vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7&…

package.json文件详解

packages.json文件里面配置的属性的含义 name和version 以上两个是最重要的两个属性,否则模块无法被安装,一起形成了它的唯一标识符 模版中内容变化,版本也要随之一起变化 description 描述,方便别人理解模块作用 main 程序…

3、windows环境下vscode开发c/c++环境配置(二)

前言:上一篇文章写了windows环境下,配置vscode的c/c开发环境,这一篇讲vscode开发c/c的配置文件,包括c_cpp_propertues.json,task.json及launch.json。 一、总体流程 通过c/c插件我们就可以来编写c/c程序了&#xff0c…

【ArcGIS微课1000例】0104:二位面状数据转三维多面体(建筑物按高度拉伸)

文章目录 一、加载数据二、添加高度字段三、三维拉伸显示四、生成三维体数据五、注意事项一、加载数据 打开ArcScene,加载配套实验数据(0104.rar中的二维建筑物矢量数据,订阅专栏,获取专栏所有文章阅读权限及配套数据),如下图所示: 二、添加高度字段 本实验将二维数据…

3、电源管理入门之CPU热插拔详解

目录 简介 1. 省电技术概览 (1)、cpu hotplug和idle的区别? 2. 热插拔代码介绍 (1)、为什么以cpu1为例? 3. ATF中处理 简介 之前介绍了电源的开机和关机重启,本小节开始介绍省电的技术,其中最暴力的省电方法就是直接拔核hotplug处理,就像需要…

什么是 Wake-on-LAN?如何使用 Splashtop 远程喊醒电脑

在当今数字互联的世界里,远程访问电脑已不仅仅是一种便利,而是许多人的需要。无论是远程工作、IT 支持,还是管理整个网络中的计算机群,我们都必须掌握正确的工具和技术。 其中一项在远程访问中发挥关键作用的技术是 Wake-on-LAN …

带你了解SMTP,POP3,IMAP协议

电子邮件(email)是一种电子通信方式,可以通过网络传输文本、图像、音频和视频等信息。在发送和接收电子邮件时,需要使用一种称为“邮件协议”的标准化协议。常用的电子邮件协议有SMTP、POP3和IMAP。 SMTP(Simple Mail…

【LeetCode周赛】第 384 场周赛

目录 3033. 修改矩阵 简单3034. 匹配模式数组的子数组数目 I 中等3035. 回文字符串的最大数量 中等3036. 匹配模式数组的子数组数目 II 困难 3033. 修改矩阵 简单 3033. 修改矩阵 分析: 获取每一列的最大元素,将矩阵中的 -1 替换成每一列的最大元素。 …

java开源xml工具类介绍

在Java中处理XML的常用开源工具有很多,以下是一些流行的库以及简单的示例代码: DOM4J DOM4J 是一个非常流行的Java库,用于处理XML,DOM4J 易于使用,并且提供了很好的性能。 Maven 依赖 …

游戏物理引擎+特效系统

原文链接:游戏开发入门(六)游戏物理引擎_游戏开发物理引擎-CSDN博客 游戏开发入门(七)特效系统_csdn 游戏效果开发-CSDN博客 1.游戏应用物理的目的就是为了真实 2.物理引擎: 可以认为属于游戏引擎的一个…

挑战杯 基于LSTM的天气预测 - 时间序列预测

0 前言 🔥 优质竞赛项目系列,今天要分享的是 机器学习大数据分析项目 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/po…

Stable Diffusion——基础模型、VAE、LORA、Embedding各个模型的介绍与使用方法

前言 Stable Diffusion(稳定扩散)是一种生成模型,基于扩散过程来生成高质量的图像。它通过一个渐进过程,从一个简单的噪声开始,逐步转变成目标图像,生成高保真度的图像。这个模型的基础版本是基于扩散过程…

论文精读--word2vec

word2vec从大量文本语料中以无监督方式学习语义知识,是用来生成词向量的工具 把文本分散嵌入到另一个离散空间,称作分布式表示,又称为词嵌入(word embedding)或词向量 Abstract We propose two novel model architec…

白银交易新手指南:怎样选择可靠的现货交易平台?

在投资市场上,白银作为一种贵金属,具有较高的投资价值和风险防范功能。对于白银交易新手来说,选择一个可靠的现货交易平台是至关重要的。那么,如何挑选一个适合自己的现货交易平台呢? 1. 平台资质 一个正规的现货交易…

Spring最新核心高频面试题(持续更新)

1 什么是Spring框架 Spring框架是一个开源的Java应用程序开发框架,它提供了很多工具和功能,可以帮助开发者更快地构建企业级应用程序。通过使用Spring框架,开发者可以更加轻松地开发Java应用程序,并且可以更加灵活地组织和管理应…

【软考高项】【英语知识】-- 单词积累

目录 一、常见计算机技术词汇 二、项目管理词汇 2.1 十大知识域 2.2 五大过程组 2.3 49个子过程 2.4 工具和技术汇总 2.5 输入和输出汇总 一、常见计算机技术词汇 序号中文英文1云计算Cloud computing2云存储Cloud storage3云服务Cloud service4软件即服务SaaS5平台即服…

[leetcode M] 105. 从前序与中序遍历序列构造二叉树

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null,15,7]…

【Azure 架构师学习笔记】- Azure Databricks (8) --UC架构简介

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (7) --Unity Catalog(UC) 基本概念和组件 前言 UC 简单来说,就是管理两样东西:用户和元存储。 用户管理 所有Databri…

C#,笛卡尔树(Cartesian Tree)的构造、遍历算法与源代码

Ren Descartes 一、笛卡尔(Ren Descartes) 勒内笛卡尔(Ren Descartes,1596年3月31日-1650年2月11日),1596年3月31日生于法国安德尔-卢瓦尔省的图赖讷(现笛卡尔,因笛卡尔得名&#…

Day 30 标准IO

文章目录 1.什么是标准IO1.1 概念1.2 特点1.3 操作 2.缓存区3.函数接口3.1 打开文件fopen3.2 关闭文件 fclose3.3 读写文件操作3.3.1 每次读写一个字符:fgetc()、fputc()每次读一个字符fgetc()每次写一个字符fputc()(1)针对文件(2)针对终端feof和ferror 3.3.2 每次一…