python教程十二 字典

news2024/11/17 1:36:48

字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2, key3 : value3 }

注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。

在这里插入图片描述

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

一个简单的字典实例:

tinydict = {‘names’: ‘dyf’, ‘likes’: 12345, ‘url’: ‘www.dyf.com’}

也可如此创建字典:

tinydict1 = { ‘abc’: 456 }
tinydict2 = { ‘abc’: 123, 98.6: 37 }

创建空字典

使用大括号 { } 创建空字典:

# 使用大括号 {} 来创建空字典
emptyDict = {}
 
# 打印字典
print(emptyDict)
 
# 查看字典的数量
print("Length:", len(emptyDict))
 
# 查看类型
print(type(emptyDict))

以上实例输出结果:

{}
Length: 0
<class ‘dict’>

使用内建函数 dict() 创建字典:

emptyDict = dict()
 
# 打印字典
print(emptyDict)
 
# 查看字典的数量
print("Length:",len(emptyDict))
 
# 查看类型
print(type(emptyDict))

以上实例输出结果:

{}
Length: 0
<class ‘dict’>

访问字典里的值

把相应的键放入到方括号中,如下实例:

#!/usr/bin/python3
 
tinydict = {'Name': 'Caiyuan', 'Age': 7, 'Class': 'First'}
 
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

以上实例输出结果:

tinydict[‘Name’]: Caiyuan
tinydict[‘Age’]: 7

如果用字典里没有的键访问数据,会输出错误如下:

#!/usr/bin/python3
 
tinydict = {'Name': 'Caiyuan', 'Age': 4, 'Class': 'First'}
 
print ("tinydict['Alice']: ", tinydict['Alice'])

以上实例输出结果:

Traceback (most recent call last):
File “test.py”, line 5, in
print ("tinydict[‘Alice’]: ", tinydict[‘Alice’])
KeyError: ‘Alice’

修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

#!/usr/bin/python3
 
tinydict = {'Name': 'Caiyuan', 'Age': 4, 'Class': 'First'}
 
tinydict['Age'] = 5               # 更新 Age
tinydict['School'] = "菜猿"  # 添加信息
 
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

以上实例输出结果:

tinydict[‘Age’]: 5
tinydict[‘School’]: 菜猿

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显式删除一个字典用del命令,如下实例:

#!/usr/bin/python3
 
tinydict = {'Name': 'Caiyuan', 'Age': 4, 'Class': 'First'}
 
del tinydict['Name'] # 删除键 'Name'
tinydict.clear()     # 清空字典
del tinydict         # 删除字典
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

但这会引发一个异常,因为用执行 del 操作后字典不再存在:

Traceback (most recent call last):
File “/dyf-test/test.py”, line 9, in
print ("tinydict[‘Age’]: ", tinydict[‘Age’])
NameError: name ‘tinydict’ is not defined

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

#!/usr/bin/python3
 
tinydict = {'Name': 'Caiyuan', 'Age': 7, 'Name': '小菜猿'}
 
print ("tinydict['Name']: ", tinydict['Name'])

以上实例输出结果:

tinydict[‘Name’]: 小菜猿

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

#!/usr/bin/python3
 
tinydict = {['Name']: 'Caiyuan', 'Age': 7}
 
print ("tinydict['Name']: ", tinydict['Name'])

以上实例输出结果:

Traceback (most recent call last):
File “test.py”, line 3, in
tinydict = {[‘Name’]: ‘Caiyuan’, ‘Age’: 7}
TypeError: unhashable type: ‘list’

字典内置函数&方法

Python字典包含了以下内置函数:

序号函数及描述实例
1len(dict)
计算字典元素个数,即键的总数。
>>> tinydict = {‘Name’: ‘Caiyuan’, ‘Age’: 4, ‘Class’: ‘First’}
>>> len(tinydict)
3
2str(dict)
输出字典,可以打印的字符串表示。
>>> tinydict = {‘Name’: ‘Caiyuan’, ‘Age’:4, ‘Class’: ‘First’}
>>> str(tinydict)
“{‘Name’: ‘Caiyuan’, ‘Class’: ‘First’, ‘Age’: 4}”
3type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型。
>>> tinydict = {‘Name’: ‘Caiyuan’, ‘Age’: 4, ‘Class’: ‘First’}
>>> type(tinydict)
<class ‘dict’>

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

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

相关文章

学会模态计算,你就掌握了结构振动冲击计算的核心

模态计算对于认识结构振动特性至关重要&#xff0c;通过模态计算可以得到模态的固有频率&#xff0c;振型&#xff0c;参与系数和有效质量等参数&#xff0c;模态计算的这些参数我们应该很熟悉&#xff0c;但是如果正确合理的使用这些结果指导工程计算&#xff0c;是我们今天讨…

[附源码]Python计算机毕业设计滁州市围棋协会Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

12月12日: 学习跟着猫叔写代码

视频地址&#xff1a;fastadmin系列教程:小白学习之路 学前准备 安装过程 数据库分析 关联查询搜索 数据校验 视图渲染 api登录注册 token验证 table表格_哔哩哔哩_bilibili 前两节是安装fastadmin操作&#xff08;可参考我自己的文章&#xff09; 11月30日&#xff1a;linux服…

当要测试的对象依赖另一个无法控制的对象(系统相关、第三方服务等),这个时候我们应该如何测试?

一.问题描述 判断文件是否有效的需求变更了&#xff1a;有效的文件扩展名存储在文件系统中&#xff0c;要测试的FileVerify类就依赖FileExtensionManager类&#xff0c;在这种场景下如何测试FileVerify类的逻辑呢? 1 public class FileVerify2 { 3 …

精品基于SSM的社区疫情防控平台

《基于SSM的社区疫情防控平台》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&…

(附源码)springboot螺丝加工厂订单管理 毕业设计 010346

题 目 springboot螺丝加工厂订单管理 目 录 摘要 1 1 绪论 1 1.1项目开发的背景 1 1.2项目开发的意义 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2 螺丝加工厂订单管理 系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2.1数据流程 3 2.3.2业务流程 4 2.3 系统…

C++11标准模板(STL)- 算法(std::sort_heap)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 数据结构的堆物理结构是数…

百度地图(HTML5新特性)-全面详解(学习总结---从入门到深化)

目录 百度地图_账号和获取密钥 百度地图_初始化 百度地图_变更地图类型 百度地图_添加控件 百度地图_改变控件位置 百度地图_添加覆盖物 百度地图_自定义标注图标 百度地图_添加文本标注 百度地图_正/逆地址解析 百度地图_信息窗口 百度地图_规划驾车路线 百度地图_…

亚马逊、速卖通、阿里国际自动和手动广告的核心是什么?自己养买家号测评的好处

亚马逊等跨境电商平台在打造的新品期&#xff0c;因为选择的细分类目是非常精准刚需的&#xff0c;词少&#xff0c;所以一开始只开启了自动广告&#xff0c;自动广告跑起来&#xff0c;转化很好。 自动广告跑了一段时间之后&#xff0c;把自动广告里表现比较好的出单词都挑出…

冰雪旅游热开启!IU酒店与您畅游山水之间

连日来&#xff0c;全国多地不断调整疫情防控措施&#xff0c;提高科学精准防控能力。国家防疫“新十条”出台后&#xff0c;大众旅游热情明显增高。 据穷游网站内数据显示&#xff0c;去海南、云南等地避寒&#xff0c;或前往东北、新疆等地滑雪备受用户推崇。三亚、上海、成…

spark上传文件和追加文件到hdfs

val status uploadFile(“C:\Users\com\Desktop\测试数据\”,“/test/file/”,“报销单.docx”) if(status) println(“上传成功&#xff01;”) else println(“上传失败”) } /** 本地文件上传到 hdfs param localDirectory 本地目录 param hdfsDirectory hdfs目录 pa…

胰岛素海藻酸钠纳米粒(INS-SA-NP)|葡聚糖(Dextran)修饰Fe304纳米颗粒

胰岛素海藻酸钠纳米粒&#xff08;INS-SA-NP&#xff09;|葡聚糖(Dextran)修饰Fe304纳米颗粒 中文名称&#xff1a;胰岛素海藻酸钠纳米粒 英文名称&#xff1a;INS-SA-NP 纯度&#xff1a;95% 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 外观:固体或粘性液…

flutter系列之:如丝般顺滑的SliverAppBar

文章目录简介SliverAppBar详解SliverAppBar的使用总结简介 对于一个APP来说&#xff0c;肯定会有一个AppBar&#xff0c;这个AppBar一般包含了APP的导航信息等。虽然我们可以用一个固定的组件来做为AppBar&#xff0c;但是这样就会丢失很多特效&#xff0c;比如将AppBar固定在…

Java基础 二维数组简介

一、二维数组的定义 当一维数组元素的类型也是一维数组时&#xff0c;便构成了“数组的数组”&#xff0c;即二维数组。二维数组定义的一般格式&#xff1a; dataType arrayName[length1][length2];其中&#xff0c; dataType 为数据类型&#xff0c; arrayName 为数组名&…

TDengine3.0与2.x数据库参数对比

TDengine 已经发布很长时间了&#xff0c;产品基本稳定下来了。 以下总结了 TDengine 3.0 与 2.x 数据库参数的一些变化&#xff0c;方便大家从 2.x 切换到 3.0。 注意&#xff1a;2.x 与 3.0 文件系统不兼容&#xff0c;不能直接升级。 2.x3.xdays单位&#xff1a;天&#xff…

云原生之使用Docker部署PESMCS Ticket工单系统

云原生之使用Docker部署PESMCS Ticket工单系统一、PESMCS Ticket介绍二、检查本地系统环境1.检查系统版本2.检查docker状态三、创建mariadb容器1.创建network2.创建数据目录3.创建mariadb容器4.查看mariadb容器状态四、创建PESMCS Ticket容器1.创建PESMCS Ticket容器2.查看PESM…

【黄啊码】如何用小程序实现世界杯参赛队伍投票

本次只分享小程序端的代码实现&#xff0c;后端每个人都有自己的实现方法&#xff0c;就不写在此。 好了&#xff0c;先看实现样式&#xff1a; 本次投票实现需要一个页面和一个弹窗实现&#xff0c;我们做的是淘汰赛部分&#xff0c;在此&#xff0c;黄啊码将淘汰赛部分直接选…

配置Nginx解决http host头攻击漏洞【详细步骤】

配置Nginx解决http host头攻击漏洞【详细步骤】前言1、进入nginx目录下2、修改nginx配置文件3、添加上后重启配置文件Nginx常用基本命令仰天大笑出门去&#xff0c;我辈岂是蓬蒿人前言 大概内容&#xff1a; 安全系统渗透测试出host头攻击漏洞&#xff0c;下面是解决步骤 1、…

React组件之间的通信方式总结(上)

先来几个术语&#xff1a; 官方我的说法对应代码React elementReact元素let element<span>A爆了</span>Component组件class App extends React.Component {}无App为父元素&#xff0c;App1为子元素<App><App1></App1></App> 本文重点&…

idea中用SSH工具手动打包部署

我用的是MobaXterm工具&#xff1a; 第一步&#xff1a;先将自己的文件整体运行一下&#xff0c;确保可以正常运行 第二步&#xff1a;在Maven中找到名为XXXX&#xff08;root&#xff09;的名称展开 ---》Lifecycle &#xff0c;先点击 clean&#xff0c;确保无误后点击 pac…