【Python】Python系列教程-- Python3 字典(十四)

news2024/11/28 16:27:28

文章目录

  • 前言
  • 创建空字典
  • 访问字典里的值
  • 修改字典
  • 删除字典元素
  • 字典键的特性
  • 字典内置函数&方法

前言

往期回顾:

  • Python系列教程–Python3介绍(一)
  • Python系列教程–Python3 环境搭建(二)
  • Python系列教程–Python3 VScode(三)
  • Python系列教程–Python3 基础语法(四)
  • Python系列教程–Python3 基本数据类型(五)
  • Python系列教程-- Python3 数据类型转换(六)
  • Python系列教程-- Python3 推导式(七)
  • Python系列教程-- Python3 解释器和注解(八)
  • Python系列教程-- Python3 什么是运算符(九)
  • Python系列教程-- Python3 数字(Number)(十)
  • Python系列教程-- Python3 字符串(十一)
  • Python系列教程-- Python3 列表(十二)
  • Python系列教程-- Python3 列表(十三)

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

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

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

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

在这里插入图片描述

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

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

一个简单的字典实例:

tinydict = {‘name’: ‘runoob’, ‘likes’: 123, ‘url’: ‘www.xxx.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': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

以上实例输出结果:

tinydict['Name']:  Runoob
tinydict['Age']:  7

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

实例

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

以上实例输出结果:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'

修改字典

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

实例

#!/usr/bin/python3
 
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程"  # 添加信息
 
 
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])

以上实例输出结果:

tinydict['Age']:  8
tinydict['School']:  菜鸟教程

删除字典元素

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

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

实例

#!/usr/bin/python3
 
tinydict = {'Name': 'Runoob', 'Age': 7, '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 "/runoob-test/test.py", line 9, in <module>
    print ("tinydict['Age']: ", tinydict['Age'])
NameError: name 'tinydict' is not defined

注:del() 方法后面也会讨论。

字典键的特性

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

两个重要的点需要记住:

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

实例

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

以上实例输出结果:

tinydict['Name']:  小菜鸟

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

实例

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

以上实例输出结果:

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

字典内置函数&方法

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

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

Python字典包含了以下内置方法:

序号函数及描述
1dict.clear()
删除字典内所有元素
2dict.copy()
返回一个字典的浅复制
3dict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4dict.get(key, default=None)
返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict
如果键在字典dict里返回true,否则返回false
6dict.items()
以列表返回一个视图对象
7dict.keys()
返回一个视图对象
8dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)
把字典dict2的键/值对更新到dict里
10dict.values()
返回一个视图对象
11pop(key[,default])
删除字典 key(键)所对应的值,返回被删除的值。
12popitem()
返回并删除字典中的最后一对键和值。

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

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

相关文章

【Java】Java(四十七):单元测试

文章目录 1. 概述2. 特点3. 使用步骤4. 相关注解5. 疑惑: 有了main函数 为啥还要 单元测试6. 后记 1. 概述 JUnit是一个 Java 编程语言的单元测试工具。JUnit 是一个非常重要的测试工具 2. 特点 JUnit是一个开放源代码的测试工具。提供注解来识别测试方法。JUnit测试可以让…

在k8s平台部署个人博客(三)

先下载实战-在k8s平台部署个人博客-资源包 再K8s部署个人博客 实验步骤如下&#xff1a; [rootk8s-master]# kubectl create secret generic mysql-pass --from-literalpasswordYOUR_PASSWORD #把mysql.tar.gz和wordpress.tar.gz上传到K8s工作节点&#xff0c;手动解压即可…

java企业级信息系统开发学习笔记09 利用MyBatis实现CRUD操作

文章目录 一、学习目标利用MyBatis查询表记录利用MyBatis插入表记录利用MyBatis更新表记录利用MyBatis删除表记录 二、查询表记录1.打开mybatis项目&#xff08;一&#xff09;在映射器配置文件里引入结果映射元素&#xff08;二&#xff09;添加按姓名查询用户记录功能1、添加…

软考——下午题部分,例题一,二,三,六

例题一 11年上半年 病人&#xff0c;护理人员&#xff0c;医生 D 生命体征范围文件 日志文件 病历文件 治疗意见文件 14年上 E1 巴士司机,2 机械师,3 会计,4 主管,5 库存管理系统 D 巴士列表文件 维修记录文件 部件清单 人事档案 14年下 1 客户 2 供应商 D 销售订单表 库存…

基于simulink仿真弹跳球

一、前言 示例可视化了一个从地板上弹起的球。球在撞击地板时变形&#xff0c;保持球的体积恒定。变形是通过修改球的刻度场来实现的。 弹跳球实验有以下几个意义&#xff1a; 1. 研究物体的弹性&#xff1a;弹跳球实验可以帮助我们了解不同物体的弹性特性&#xff0c;包括弹性…

高校全奖PhD招生、大厂全职/实习招聘合集来了!快来拿offer!

本周&#xff0c;招聘小助手从「AI 求职」公众号中整理了来自 6 所高校和 6 家用人单位的「人工智能」相关全奖博士招生、算法实习等招聘信息。 分别来自新加坡国立大学、香港科技大学&#xff08;广州&#xff09;、华盛顿大学、字节跳动、小红书、京东、IDEA研究院等国内外知…

如何通过控制点或地物点生产地方坐标系的倾斜摄影三维模型数据?

如何通过控制点或地物点生产地方坐标系的倾斜摄影三维模型数据&#xff1f; 要生成地方坐标系的倾斜摄影三维模型数据&#xff0c;需要进行以下步骤&#xff1a; 1、收集影像数据 首先需要采集大量的航空影像和地面影像&#xff0c;以构建真实世界中的物体模型。这些影像可以…

Electron+Vue+Vite: 开发实践—初始化项目

运行系统:Apple M1 ,16 GB 开发工具:VSCode NodeJS:18.10 参考:https://github.com/electron-vite/electron-vite-vue.git 文章目录 创建项目构建项目客户端构建网页构建创建项目 npm create electron-vitecd electron-vite-tempsudo yarn installsudo yarn d

DDD与传统的OOA/D有什么区别?

DDD&#xff08;Domain-Driven Design&#xff09;与传统的OOA/D&#xff08;Object-Oriented Analysis and Design&#xff09;有以下几个不同点&#xff1a; 领域驱动设计注重建立一个通用语言&#xff0c;使得业务专家和技术人员之间能够沟通协作&#xff0c;在业务问题的解…

TrueNAS配置虚拟机网卡

TrueNAS支持运行虚拟机&#xff0c;但会出现虚拟机可以访问外网&#xff0c;却不能和主机的TrueNAS通讯。 这时&#xff0c;需要重新配置TrueNAS的网卡设置。 1. 原来的主机网卡配置 我的这台TrueNAS主机有两个以太网卡&#xff0c;目前使用的是enp4s0&#xff0c;IP地址192.1…

CPM-Bee本地部署的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

从零开始学习JavaScript:轻松掌握编程语言的核心技能④

从零开始学习JavaScript&#xff1a;轻松掌握编程语言的核心技能④ 1. JavaScript 表单1.1 JavaScript 表单验证 2. JavaScript 保留关键字3. JavaScript this 关键字4. JavaScript let 和 const4.1 let4.2 const 5.JavaScript JSON6.JavaScript 异步编程7.JavaScript 代码规范…

4.协同工作与发布

目录 1 开发流程 2 人员分配情况 3 不同角色的权限 4 添加项目成员和体验成员 4.1 项目成员 4.1.1 添加 4.1.2 删除与修改权限 4.2 体验成员 4.2.1 添加 4.2.2 删除 5 发布上线 5.1 上传代码 5.2 提交审核 5.3 发布 6 推广 7 查看后台数据 1 …

留学生乱用ChatGPT真的太致命!被认定学术不诚信直接被退学?

01.ChatGPT留学生神器&#xff1f;作业论文全靠它&#xff1f; 近期留学圈内最火热的话题&#xff0c;肯定是关于ChatGPT。 “这个python作业我写不来&#xff0c;让ChatGPT帮我直接生成code就好了。” “论文英文的写不来&#xff0c;ChatGPT直接生成一篇essay&#xff0c;…

Linux - 进阶 使用 LAMP 搭建私有云存储 ( Nextcloud 搭建)

我们用到的私有云存储 >>> nextcloud (非常出名的一款 私有云搭建的应用响应程序 &#xff09; 预备工作 &#xff1a; # 关闭 selinux 及 防火墙 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld # 搭建 LAMP 环境 L &…

上市公司污染排放数据(2007-2022)

随着绿色金融的发展、环境信息披露政策制度的相继出台以及公众环保意识的增强&#xff0c;上市公司环境信息披露引起了学者、机构以及社会公众的广泛关注。本数据收集整理上市公司污染排放数据。 1、数据来源&#xff1a;自主整理 2、时间跨度&#xff1a;2007-2022年 3、区域…

构筑算力时代的全光底座,华为带来了面向F5.5G演进的战略蓝图

1991年&#xff0c;科学家Mark Weiser发表了一片文章《The Computer for the 21st Century》&#xff0c;其中有一句名言&#xff1a; The most profound technologies are those that disappear.They weave themselves into the fabric of everyday life until they areindist…

Executor框架的结构

Executor框架的结构 Executor框架主要由3大部分组成如下。任务。包括被执行任务需要实现的接口&#xff1a;Runnable接口或Callable接口。任务的执行。包括任务执行机制的核心接口Executor&#xff0c;以及继承自Executor的ExecutorService接口。Executor框架有两个关键类实现…

Office Visio 2013安装

哈喽&#xff0c;大家好。今天一起学习的是Visio 2013的安装&#xff0c;这是一个绘制流程图的软件&#xff0c;用有效的绘图表达信息&#xff0c;比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件&#xff0c;便于IT和商务人员就复杂…

【软考系统规划与管理师笔记】第5篇 IT服务规划设计

目录 1概述 2 IT服务规划设计活动 2.1 规划设计的活动 2.2关键成功因素 3服务目录管理 3.1 设计服务目录的目的 3.2服务目录设计活动 3.3服务目录设计关键成功因素 4服务级别协议 5服务需求识别 5.1服务需求识别的目的 5.2服务需求识别的活动 5.3 评估服务的指标…