Python学习——字典

news2024/9/22 13:34:29

一、字典的定义
(1)字典也是Python内置的数据结构之一,和列表一样都是可变序列,也就是说字典也能够进行增、删、改的操作。字典是以键值对的方式存储数据的,所以在字典中包含键和值。不同于数组,字典是一个无序的序列,也就是说第一个存入字典的元素,不一定是第一个输出的元素,字典中存储元素的位置,是根据hash函数计算得来的,字典中的键不可变,也就是说键不可以进行增、删、改操作。
(2)字典的实现原理
Python中的字典是根据key查找value所在的位置。
(3)字典的格式
字典名={key1:value1, key2:value2, key3:value3}
二、字典的创建
方式一:使用花括号
方式二:使用内置函数dict()

#使用花括号
scores={'一':377,'二':330,'三':357}
print(scores)

#使用内置函数dict
student=dict(name='jack',age=20)
print(student)

#创建一个空字典
d={}
print(d)

运行结果
在这里插入图片描述
三、字典元素的获取
方式一:使用方括号[],利用键获取值

#使用方括号获取字典中的元素
scores={'一':377,'二':330,'三':357}
print(scores['二'])

运行结果
在这里插入图片描述
如果没有所搜索的键,则会报错keyerror

#使用方括号获取字典中的元素
scores={'一':377,'二':330,'三':357}
print(scores['四'])

运行结果
在这里插入图片描述
方法二:使用get

#使用get
scores={'一':377,'二':330,'三':357}
print(scores.get('二'))

运行结果
在这里插入图片描述
如果没有所要搜索的键,则显示none

#使用get
scores={'一':377,'二':330,'三':357}
print(scores.get('四'))

运行结果
在这里插入图片描述
在这里插入图片描述
如果所查找的键不存在时,输出一个规定的值

#使用get
scores={'一':377,'二':330,'三':357}
#若所查找的键不存在时,输出一个规定的值
print(scores.get('四',325))

运行结果
在这里插入图片描述
四、字典中键是否存在的判断
有in和not in,返回结果是true和false。

#键存在的判断
scores={'一':377,'二':330,'三':357}
print('二' in scores)
print('二'not in scores)
print('四' in scores)
print('四'not in scores)

运行结果
在这里插入图片描述
五、字典元素的删除
(1)用del 删除指定的键值对

#键值对的删除
scores={'一':377,'二':330,'三':357}
del scores['一']
print(scores)

运行结果
在这里插入图片描述
(2)清空字典中的所有元素

#清空字典中的所有元素
scores={'一':377,'二':330,'三':357}
scores.clear()
print(scores)

运行结果
在这里插入图片描述
六、字典元素的新增
就是新增加键值对,一个键值对的增加

#字典中元素的添加
scores={'一':377,'二':330,'三':357}
print('初始字典',scores)

scores['四']=409
print('添加元素之后的字典',scores)

运行结果
在这里插入图片描述
增加多个键值对也可以采用下面一个办法

#字典中元素的添加
scores={'一':377,'二':330,'三':357}
print('初始字典',scores)

scores['四']=409
scores['五']=500
print('添加元素之后的字典',scores)

运行结果
在这里插入图片描述
七、字典元素的修改
由前面可知,字典中的键不可修改,但这里可以对字典中的值进行修改。

#字典中元素的修改
scores={'一':377,'二':330,'三':357}
print('初始字典',scores)

scores['三']=857
print('修改后的字典',scores)

运行结果
在这里插入图片描述
八、获取字典视图
获取字典视图,可以是获取字典中所有的key,value或者是所有的键值对。

#获取字典视图
scores={'一':377,'二':330,'三':357}
#获取所有的键
keys=scores.keys()
print(keys)
print(type(keys))
print(list(keys))#将keys转换为列表


#获取所有的值
values=scores.values()
print(values)
print(type(values))
print(list(values))#将values转换为列表

#获取所有的键值对
items=scores.items()
print(items)
print(type(items))
print(list(items))#转换之后是元组

运行结果
在这里插入图片描述
九、字典元素的遍历

scores={'一':377,'二':330,'三':357}
#字典元素的遍历
for item in scores:
    print(item)

运行结果
在这里插入图片描述
输出的都是键,但是我们可以根据键去获取值

scores={'一':377,'二':330,'三':357}
#字典元素的遍历
for item in scores:
    print(item,scores[item])

运行结果
在这里插入图片描述
或者用get的方法

scores={'一':377,'二':330,'三':357}
#字典元素的遍历
for item in scores:
    print(item,scores.get(item))

运行结果
在这里插入图片描述
十、字典的特点
(1)键不可以重复,否则会出现值覆盖的情况

#键不可以重复,否则会出现值覆盖的情况
dic={'分数':857,'分数':587}
print(dic)

运行结果
在这里插入图片描述
(2)值可以重复

#值可以重复
dic={'分数':857,'成绩':857}
print(dic)

运行结果
在这里插入图片描述
(3)字典的元素是无序的,所以没法在指定位置上再插入一个键值对。
(4)字典中的键也还是不可变对象
(5)字典的内存空间是动态分配的
(6)字典会占有较大的内存
十一、字典生成式
{键:值 for 键,值 in zip(键,值)}

#字典生成式
names=['张三','李四','王二麻子']
scores=[98,99,97]

dic={names:scores  for names,scores in zip(names,scores)}
print(dic)

运行结果
在这里插入图片描述

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

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

相关文章

manjaro 设置 vscode 为默认编辑器

manjaro 现在的默认编辑器是kate 换成vscode xdg-mime default code.desktop text/plain Setting VS Code as the default text editor

接口调用参数篡改测试-业务安全测试实操(22)

接口调用参数篡改测试,接口未授权访问/调用测试 接口调用参数篡改测试 测试原理和方法 在短信、邮件调用业务环节中,例如短信验证码、邮件验证码。修改对应请求中手机号或邮箱地址参数值提交后,如果修改后的手机号或邮箱收到系统发送的信息,则表示接口数据调用参数可篡改 …

将两个数组组合成在一起np.block()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将两个数组组合成在一起 np.block() 选择题 下列说法错误的是? import numpy as np A np.array([[1, 2], [3, 4]]) print("【显示】A") print(A) B np.array([[5, 6], [7, 8]]…

在layui中使用vue,使用vue进行页面数据部分数据更新

layui是一款非常优秀的框架,使用也非常的广泛,许多后台管理系统都使用layui,简单便捷,但是在涉及页面部分数据变化,就比较难以处理,比如一个页面一个提交页,提交之后部分数据实时进行更新&#…

高级第二个月考试

1.单页面应用和多页面应用的区别及优缺点 2.写出对虚拟dom的理解 概念: 虚拟DOM其实就是用一个原生的JS对象去描述一个DOM节点,实际上它只是对真实 DOM 的一层抽象。最终可以通过一系列操作使这棵树映射到真实环境上。相当于在js与DOM之间做了一个缓存&a…

用于自动驾驶的大规模三维视觉语义地图的构建

文章:Vision-based Large-scale 3D Semantic Mapping for Autonomous Driving Applications 作者:Qing Cheng,Niclas Zeller,Daniel Cremers 编辑:点云PCL 欢迎各位加入知识星球,获取PDF论文,欢…

网络编程——Udp套接字

文章目录 1. 简单的UDP网络程序1.1 日志的打印1.2 服务端初始化1.3 启动服务器并提供服务1.4 客户端1.5 客户端发送的消息1.6 服务端的构造函数和析构函数1.7 本地测试1.8 服务端回复消息给所有客户端 1. 简单的UDP网络程序 我们把udp的协议封装成一个类。 下面我们就开始认识…

SpringBoot使用Swagger配置API接口文档

💧 概述 Swagger是一个用于设计、构建和文档化 RESTful API 的开源框架。它提供了一组工具,使得开发人员能够更轻松地定义、描述和测试API接口。 具体来说,Swagger包含以下几个核心组件: Swagger规范(Swagger Specif…

【CTF-Reverse】IDA动态调试,反调试技术

在本专栏前两篇文章中,带领大家讲解了逆向加密算法,AES,TEA,RC4,Base64加密算法,并带领大家识别各种密码算法特征,这一篇文章来带领大家学习在逆向过程中的动态调试:IDA动态调试,反调试技术。 …

5SHY3545L0016 3BHB020720R0002可控硅模块IGCT

​ 5SHY3545L0016 3BHB020720R0002可控硅模块IGCT 5SHY3545L0016 3BHB020720R0002可控硅模块IGCT 1) dcs系统往往具有丰富的自诊断功能。根据报警,可以直接找到故障点,并且还可通过报警的消除来验证维修结果。 2) 通信接头接触不良会引起通信故障,确认通信接头接触不良后,可以…

ssm企业网站的设计与实现-计算机毕设 附源码82639

ssm企业网站的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中…

docker安装sentinel

关于如何安装docker 可以看我的这篇文章 ​​​​​​http://t.csdn.cn/3jKPm 第一步:拉取镜像 docker pull bladex/sentinel-dashboard 这里不加版本号默认拉取最新版本 第二步:查看已经安装的镜像 docker images 看到这个就是安装好了 第三步&…

基于Java+Swing实现飞机大战游戏

基于JavaSwing实现飞机大战游戏 一、系统介绍二、功能展示三、其他系统四、获取源码 一、系统介绍 基于Java的飞机大战游戏主要需要我方飞机和敌方飞机,还有子弹,特殊nPC,开始背景,结束背景,以及背景音乐。我方飞机可…

chatGPT对企业的发展有什么影响

ChatGPT目前正在全世界范围内掀起风暴,成为炙手可热的一个名词。作为基于人工智能的工具的最新产品,目前ChatGPT呈现给我们的似乎只是足够有趣,且从目前已知的信息来看,它似乎还没有任何商业运作相关的计划,大多应用聚…

webrtc stun协议

STUN(Simple Traversal of User Datagram Protocol Through Network Address Translators),即简单的用UDP穿透NAT,是个轻量级的协议,是基于UDP的完整的穿透NAT的解决方案。它允许应用程序发现它们与公共互联网之间存在…

死磕AI大模型网络,鹅厂出招了!

2023年,以ChatGPT为代表的AIGC大模型全面崛起,成为了整个社会关注的焦点。 大模型表现出了强悍的自然语言理解能力,刷新了人们对AI的认知,也掀起了新一轮的“算力军备竞赛”。 大家都知道,AIGC大模型的入局门槛是很高的…

西门子S7-1200系列PLC输入/输出接线

西门子S7-1200是一款紧凑型、模块化的PLC,可完成简单逻辑控制、高级逻辑控制、HMI 和网络通信等任务。下面分享S7-1200系列PLC输入/输出接线图给大家。 CPU 1211C 接线图 CPU 1211C AC/DC/继电器 (6ES7 211-1BE40-0XB0) ① 24 VDC 传感器电源 ② 对于漏型输入将负…

KingbaseES的学习心得和知识总结(三)|Kingbase数据库性能调优工具sys_kwr插件的简介和使用

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、KingbaseES V8产品文档首页,点击前往 2、Kingbase 文档库,点击前往 3、北京人大金仓信息技术股份有限公司 官网首页,点击前往…

单片机——时间表程序加仿真

一、程序 #include <REG52.h> #include "main.h" sbit key1P3^0; sbit key2P3^1; sbit key3P3^2; sbit key4P3^3; sbit SWP1^0; unsigned char code SEG[]{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8E,0x86}; unsigned char i,cp,cp1,flash,key…

Python小白必看

Python学习计划&#xff1a; 1.先学习Python基础知识&#xff0c;包括&#xff1a; 变量、数据类型、运算符条件语句、循环语句函数、模块、包 2.掌握Python的常用库和框架&#xff0c;例如&#xff1a; NumPy&#xff1a;用于科学计算、数据分析等Pandas&#xff1a;用于数…