python基础知识(八):字典

news2024/11/26 18:49:51

目录

  • 1. 字典及其创建
  • 2. 字典元素的获取
  • 3. 字典元素的删除与清空
  • 4. 字典元素的增加
  • 5. 字典元素的修改
  • 6. 字典的键、值和键值对的获取
  • 7. 字典元素的遍历
  • 8. 字典的特点
  • 9. 字典生成式

1. 字典及其创建

在Python中,字典是一系列键—值对。每个键都与一个值相关联,值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
字典的创建方法常用花括号生成也可以使用函数dict()创建。

# 字典的创建,使用花括号{}
scores = {'张三': 100, '李四': 99, '王五': 98}
print(scores)
# 使用内置函数dict()
student = dict(czh=100)
print(student)
# 空字典{}
d = {}
print(d)

在这里插入图片描述

2. 字典元素的获取

字典元素的获取常用键来获取或者使用get()函数获取。

# 字典元素的获取
# 第一种方式,使用[]
scores = {'张三': 100, '李四': 99, '王五': 98}
print(scores['张三'])
# 第二种方式,使用get()方法
print(scores.get('张三'))
print(scores.get('陈六', 99))  # 99是在查找不存在时提供的一个默认值

在这里插入图片描述

3. 字典元素的删除与清空

删除字典元素使用del。

# 字典元素的删除
del scores['张三']  # 删除指定的key-value对
print(scores)

在这里插入图片描述
清空字典用clear()。

# 字典元素的清空 clear()
scores.clear()
print(scores)

在这里插入图片描述

4. 字典元素的增加

字典元素的增加是直接对字典新增键值对。

# 字典元素的增加
scores = {'张三': 100, '李四': 99, '王五': 98}
print(scores)
scores['陈六'] = 98
print(scores)

在这里插入图片描述

5. 字典元素的修改

字典元素的增加是通过键对值修改。

# 字典元素的修改
scores['陈六'] = 100
print(scores)

在这里插入图片描述

6. 字典的键、值和键值对的获取

获取字典中所有的键。

# 获取所有的键
keys = scores.keys()
print(keys)
print(type(keys))
print(list(keys)) # 将所有的键转换成列表

在这里插入图片描述
获取字典中所有的值。

# 获取所有的值
values = scores.values()
print(values)
print(type(values))
print(list(values))

在这里插入图片描述

# 获取所有的键值对
items = scores.items()
print(items)
print(type(items))
print(list(items))

在这里插入图片描述

7. 字典元素的遍历

# 字典元素的遍历
scores = {'张三': 100, '李四': 99, '王五': 98}
for i in scores:
    print(i, scores[i], scores.get(i))

在这里插入图片描述

8. 字典的特点

字典中所有的元素都是一个键值对,key不允许重复,值可以重复。

# 字典的特点
# 字典中所有的元素都是一个键值对,key不允许重复,值可以重复
s = {'张二': 99, '张二': 100}
print(s)  # 如果键重复,将会覆盖{'张二': 100}
s1 = {'张二': 100, '张三': 100}  # 值可以重复
print(s1)
# 字典元素是无序的
# 字典中的key必须是不可变对象,比如字符串

在这里插入图片描述

9. 字典生成式

字典的快速生成用zip()函数实现。

# 字典生成式
# 内置函数zip()
i = ['aaa', 'bbb', 'ccc']
j = [99, 98, 100]
A = {i:j for i, j in zip(i, j)}
print(A)

在这里插入图片描述

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

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

相关文章

【深度学习】跌倒识别(带数据集和源码)从0到1

文章目录 前言1. 数据集1.1 数据初探1.2 数据处理1.2 训练前验证图片1.4 翻车教训和进阶知识 2. 训练3.效果展示 前言 又要到做跌倒识别了。 主流方案有两种: 1.基于关键点的识别,然后做业务判断,判断跌倒,用openpose可以做到。…

node,yarn ,cnpm安装

1.解决npm warn config global --global, --local are deprecated. use --locationglobal instead 在安装配置node时,cmd检查node没问题 但是检查npm就出现**npm warn config global –global, –local are deprecated. use –locationglobal instead.**的报警 问…

ClickHouse 使用介绍

1 CK 介绍 1.1 clickhouse简介 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的用于在线分析处理查询(OLAP :Online Analytical Processing)MPP架构的列式存储数据库(DBMS:Database Management System),能够…

SpringBoot整合第三方技术 -- SpringBoot快速入门保姆级教程(三)

文章目录 前言三、SpringBoot整合第三方技术1.SpringBoot整合junit2.Spring整合junit入门案例3.SpringBoot整合Mybatis4.SpringBoot整合Mybatis入门案例5.SpringBoot整合Mybatis更换默认数据源 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博…

2023陕西省赛-部分Misc复现

目录 管道 zsteg使用: 可是雪啊飘进双眼 snow加密: 管道 用工具zsteg查看各通道的lsb,使用指令,拿到flag zsteg -a 文件 zsteg使用: 介绍:用来检测PNG和BMP中隐藏数据的工具,可以快速提取隐…

初学SpringBoot—01

注明:本人学习来源SpringForAll社区资料 我看到的资料中的springboot和idea版本较低,所以我这里在我学习后,理解并掌握的基础上将我用到的IDEA2022版本和Maven3.8.6做一个记录 学习SpringBoot前最好学习一下Maven和SSM框架 一、新建SpringBo…

RocketMQ详解+实战+常见面试题

目录 RocketMQ是什么? RocketMQ的主要特点包括 RocketMQ 的消息模型 队列模型/点对点 发布/订阅模型 RocketMQ 的消息模型 RocketMQ中重要的组件 RocketMQ消费模式 RoctetMQ基本架构 springboot实战讲解 基本样例 单向发送 异步发送 同步发送 推模式…

chatgpt赋能python:Python多行换行:如何在Python代码中正确处理多行

Python多行换行:如何在Python代码中正确处理多行 在Python中,代码往往需要按照一定的格式进行排版,以使代码更易于阅读和维护。在编写长代码时经常会遇到一个问题:如何正确处理多行?本文将介绍Python中多行换行的方法…

嵌入式系统中SPI 子系统基本原理实现

1、SPI hardware SPI:Serial Perripheral Interface,串行外围设备接口,由 Motorola 公司提出,是一种高速、全双工、同步通信总线。SPI 以主从方式工作,通常是有一个主设备和一个或多个从设备,无应答机制。…

Mendix 创客访谈录 | 低代码开启新世界

本期创客 李垚 西门子汽车事业部IOT专家 任职于西门子中国DI事业部,主要负责汽车行业西门子产品业务拓展与支持,服务于中国区汽车生产企业。本人主要负责Siplant、边缘计算,低代码技术等产品的售前、售后技术支持和故障排除, 解决客户在产品…

VSCode+GDB+Qemu调试ARM64 linux内核

俗话说,工欲善其事 必先利其器。linux kernel是一个非常复杂的系统,初学者会很难入门。 如果有一个方便的调试环境,学习效率至少能有5-10倍的提升。 为了学习linux内核,通常有这两个需要 可以摆脱硬件,方便的编译和…

React新版扩展特性

目录 Hooks 三个常用的Hook State Hook Effect Hook Ref Hook Context Router 6 声明式路由 编程式路由导航 Hooks (1) Hook是react 18.8.0版本新增的特性/语法 (2) 可以让我们在函数式组件中使用state以及其他的react特性 三个常用的Hook (1) State Hook: React.useSt…

Redis进阶:缓存穿透|缓存击穿|缓存雪崩问题

Redis应用问题 1. 缓存穿透问题1.1 问题描述1.2 解决方案方法一:空值缓存方法二:设置可访问的名单(白名单)方法三:采用布隆过滤器方法四:进行实时监控 2. 缓存击穿问题2.1 问题描述2.2 解决方案方法一&…

在金融行业工作有哪些必须熟练掌握的 Excel 公式?

金融中需要掌握的 Excel 公式有很多,以下是一些重要的公式和技巧: 1. SUM、AVERAGE、MIN、MAX 等基本统计函数 2. IF、AND、OR 等逻辑函数 3. VLOOKUP、HLOOKUP、INDEX、MATCH 等查找函数 4. PMT、PV、FV、NPV、IRR 等财务函数 5. CONCATENATE、LEF…

nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞

第0.1节 HTML5和桌面软件开发的碰撞 当我们谈论桌面软件开发技术的时候,你会想到什么?如果不对技术本身进行更为深入的探讨,在我的世界里,有这么多技术概念可以被罗列出来(请原谅我本质上是一个Windows程序员的事实&a…

HarmoneyOS--从简单页面跳转开始2

此处对上个页面跳转适当增加内容,主要为List组件和grid组件的使用,适当熟悉最基本的容器Row和Column的使用 Login.ets // ts-nocheck import router from ohos.router; Entry Component struct TextDemo {State name:string State password:string bui…

vue2 + antd 封装动态表单组件(三)

最近有小伙伴在问动态表单如何再次封装,比如配合模态框或者抽屉封装多一层,这样可以大大提高开发效率,结合之前的写的 vue2 antd 封装动态表单组件(一) vue2 antd 封装动态表单组件(二) 做了…

【技术选型】时序数据库选型

文章目录 1、前言2、概述2.1 时序数据库的定义2.2 时序数据库的概念2.3 时序数据库的趋势 3、时序数据库对比3.1 influxdb3.2 Prometheus3.3 TDengine3.4 DolphinDB 4、选型结论 1、前言 时序数据治理是数据治理领域核心、打通IT与OT域数据链路,是工业物联网基石、…

Macos中Automator自动操作实现文本加解密、Json格式化、字数统计等操作

文章目录 一、说明打开Automator效果 二、文本加密三、文本解密四、Json格式化五、字数统计 一、说明 在 Automator 的工作流程中,动作是按照从上到下的顺序执行的,每一个动作的输出默认会成为下一个动作的输入。 打开Automator Command 空格 &#…

万万没想到系列,世界上最知名的失败建筑设计合集!

​ 大家好,这里是建模助手。 我们生活在由建筑包围的世界里,生活的面貌造就了建筑的多样性。而矗立的建筑也无言的记录着时代,尤其是一些建筑大师们的作品,可谓是集艺术和美学于一体的一流名作。 但,这不是凡事都有例…