学习笔记-数据容器:dict(字典)

一.字典的定义

1.语法
  • 使用{ }存储原始,每一个元素是一个键值对
  • 每一个键值对包含Key和Value(用冒号分隔)
  • 键值对之间使用逗号分隔
  • Key和Value可以是任意类型的数据(key不可为可变类型(列表集合字典))
  • Key不可重复,重复会对原有数据覆盖
# 定义空字典
dict1 = {}
print(dict1, type(dict1))
dict2 = dict()
print(dict2, type(dict2))# 定义非空字典
dict3 = {'张三': 88, '李四': 89, '王五': 99, '张三': 77}
print(dict3)
2.数据的获取

语法:

  • 字典名[key]
  • 字典名.get(key)
3.字典的嵌套
# 字典嵌套
dict4 = {'张三': {'语文': 88, '数学': 78},'李四': {'语文': 68, '数学': 87},'王五': {'语文': 69, '数学': 94}
}
print(dict4)
# 查找,数据获取
print(dict4['张三'])
print(dict4['张三']['数学'])

二.常见操作

1.新增元素

语法: 字典名[key] = value

2.更新元素
# 定义空字典
dict = {}
print(dict, type(dict))# 新增操作
dict[1.0] = '张三'
print(dict)
dict[2] = '李四'
print(dict)
dict[3] = '王五'
print(dict)# 更新操作
dict[1] = '赵六'
print(dict)
#  注意:数值1 和1.0 本质是一样的,所以是修改操作
3.查询操作

# 查询操作
# len
print(len(dict))
# key:键 keys:所有键
print(dict.keys())
# value:值 values:所有值
print(dict.values())
# item:值 items:所有键值对
print(dict.items())# 根据key 找值
# 方法1 字典名[key]
print(dict[1.0])
# 方法2 字典名.get(key)
print(dict.get(1.0))
4.删除操作
# 语法:字典.pop(Key),指定Key的数据被删除
dict.pop(1.0)
print(dict)
# del 字典[key]
del dict['李四']
print(dict)
# clear 清空字典内的元素
dict.clear()
print(dict)
# del 删除字典
del dict
print(dict) #报错,说明删除成功
5.for循环遍历

语法:for key in 字典.keys()

# 定义非空字典
dict4 = {'张三': {'语文': 88, '数学': 78},'李四': {'语文': 68, '数学': 87},'王五': {'语文': 69, '数学': 94}
}
# 遍历
for name in dict4:score_info = dict4.get(name)for subject in score_info:score = score_info.get(subject)print(f'{name}{subject}成绩为{score}分')
 注意: 因为字典没有索引,所以不能用while循环
6.总结

在这里插入图片描述

三.字典的特点

  • 可以存储多个元素
  • 可以是不同类型的数据(注意key不能是可变类型)
  • 每一份数据是KeyValue键值对
  • 可以通过Key获取到Value,Key不可重复(重复会覆盖)
  • 不支持下标索引
  • 可以修改(增加或删除更新元素等)
  • 支持for循环,不支持while循环

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

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

相关文章

Oracle数据库 CentOS7上修改hostname后无法启动解决办法

目录 一、问题背景 二、解决问题 三、重启数据库 四、重启监听 一、问题背景 CentOS系统需要修改hostname,修改后oracle数据库无法启动和正常运行。 系统:CentOS7.3 数据库版本:Oracle 11g Express Edtion 二、解决问题 通过which orac…

提交代码,SVN被锁定,提示:svn is already locked解决方案

今天遇到一个问题,svn 在提交代码的时候出现了svn is already locked,解决方案如下图 点击clean up 点击ok即可 来看官方对clean up的解释:它的作用就是查找工作拷贝中的所有遗留的日志文件,删除进程中工作拷贝的锁。 参考&…

tl431几种不常见的接法

tl431可调电源电路图分析 精密电压基准IC TL431是我们常见的精密电压基准IC ,应用非常广泛。其输出压连续可调达36V,工作电流范围宽达0.1--100mA,动态电阻典型值为0.22欧,输出杂波低。图1是利用它作电压基准和驱动外加场效应管K7…

(学习日记)2024.01.09

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

Springboot WebFlux项目结合mongodb进行crud

第一步:创建项目 第二步:给mongodb插入数据 第三步:创建实体类 package org.cyl.test02.entity;// Task.java import lombok.Data;Data public class Task {private String id;private String description; }第四步:创建Reposito…

FreeRTOS 学习相关笔记 附C语言内容补充

学习视频为【正点原子】手把手教你学FreeRTOS实时系统 文章目录 RTOS 入门裸机RTOSFreeRTOS任务调度方式任务状态 FreeRTOS 移植系统配置文件 API函数任务创建和删除动态方式创建任务静态方式创建任务删除任务 任务挂起和恢复函数调度器挂起与恢复临界区任务调度器的挂起和恢复…

鸿蒙开发已解决-Failed to connect to gitee.com port 443: Time out 连接超时提示

文章目录 项目场景:问题描述原因分析:解决方案:解决方案1解决方案2:解决方案3:此Bug解决方案总结解决方案总结**心得体会:解决连接超时问题的三种方案**项目场景: 导入Sample时遇到导入失败的情况,并提示“Failed to connect to gitee.com port 443: Time out”连接超…

实战使用工具appuploader上线发布苹果商店

实战使用工具appuploader上线发布苹果商店 我们发布ios应用的时候,步骤繁琐,非常耗时,appuploader工具就是解决一站式从上传到发布到appstore应用商店的,当我们开发完app后,需要将ipa/apk提交给测试人员测试&#xff0…

【python】No module named ‘pip‘问题

一、问题描述 win11上安装的Python版本有几个&#xff0c;不知道那里出问题了。用pip总是提示&#xff1a; Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line …

完整的JAVA酒店管理系统源码带安装部署文档

完整的JAVA酒店管理系统源码带安装部署文档 002.png (135.63 KB, 下载次数: 0) 下载附件 设为封面 半小时前 上传

鸿蒙开发现在就业前景怎样?

随着科技的不断进步&#xff0c;鸿蒙系统逐渐崭露头角&#xff0c;成为智能设备领域的一颗新星。作为华为自主研发的操作系统&#xff0c;鸿蒙系统拥有着广阔的市场前景和就业机会。那么&#xff0c;鸿蒙开发的就业前景究竟怎样呢&#xff1f; 一、市场需求持续增长 随着鸿蒙…

OpenHarmony源码解析之编译构建

前言 OpenHarmony是由开放原子开源基金会&#xff08;OpenAtom Foundation&#xff09;孵化及运营的开源项目&#xff0c;目标是面向全场景、全连接、全智能时代、基于开源的方式&#xff0c;搭建一个智能终端设备操作系统的框架和平台&#xff0c;促进万物互联产业的繁荣发展…

vue3-计算属性

计算属性 模板中的表达式虽然方便&#xff0c;但也只能用来做简单的操作。如果在模板中写太多逻辑&#xff0c;会让模板变得臃肿&#xff0c;难以维护。 根据作者今年是否看过书展示不同信息 <script lang"ts" setup> import { ref, reactive } from "…

杨中科 .NETCORE ENTITY FRAMEWORK CORE-1 EFCORE 第一部分

一 、什么是EF Core 什么是ORM 1、说明: 本课程需要你有数据库、SOL等基础知识。 2、ORM: ObjectRelational Mapping。让开发者用对象操作的形式操作关系数据库 比如插入: User user new User(Name"admin"Password"123”; orm.Save(user);比如查询: Book b…

C#进阶学习

目录 简单数据结构类ArrayList声明增删查改遍历装箱拆箱 Stack声明增取查改遍历装箱拆箱 Queue声明增取查改遍历 Hashtable声明增删查改遍历装箱拆箱 泛型泛型分类泛型的作用泛型约束 常用泛型数据结构类List声明增删查改遍历 Dictionary声明增删查改遍历 LinkedList声明增删查…

设计模式⑤ :一致性

一、前言 有时候不想动脑子&#xff0c;就懒得看源码又不像浪费时间所以会看看书&#xff0c;但是又记不住&#xff0c;所以决定开始写"抄书"系列。本系列大部分内容都是来源于《 图解设计模式》&#xff08;【日】结城浩 著&#xff09;。该系列文章可随意转载。 …

【Docker】Linux中Docker镜像结构及自定义镜像,并且上传仓库可提供使用

目录 一、镜像结构 1. 基本结构 2. 常用命令 二、自定义镜像 1. 基本镜像 2. 进阶镜像 3. 完善镜像 三、镜像上传仓库 每篇一获 一、镜像结构 自定义 Docker 镜像有很多用途&#xff0c;以下是一些主要的应用场景&#xff1a; 一致性环境&#xff1a;通过自定义镜像&a…

Gauss消去法(C++)

文章目录 算法描述顺序Gauss消去法列选主元Gauss消去法全选主元Gauss消去法Gauss-Jordan消去法 算法实现顺序Gauss消去法列选主元Gauss消去法全选主元Gauss消去法列选主元Gauss-Jordan消去法 实例分析 Gauss消去法是求解线性方程组较为有效的方法, 它主要包括两个操作, 即消元和…

正则表达式Regex

是什么&#xff1a;一句话&#xff0c;正则表达式是对字符串执行模式匹配的技术。 从一段字符串中提取出所有英文单词、数字、字母和数字。 如果采用传统方法&#xff1a;将字符串的所有字符分割成单个&#xff0c;根据ASCII码判断&#xff0c;在一定范围内就是字母&#xff…

pymssql 报错误解决办法:20002, severity 9

错误 解决办法 python3.6&#xff0c;安装pymssql低版本&#xff08;pymssql-2.1.5-cp36-cp36m-win32.whl&#xff09;