python_基础编程_字典、集合

字典类型:

一、什么是字典

字典:是py内置的数据结构之一,与列表一样是一个可变的序列,以键值对的方式存储数据,是一个无序的序列

二、字典的原理

实现原理:Py根据key查找value所在的位置

三、字典的创建

基本语句:1、使用花括号 score = {'张三' :100,'李四' = 98, '王五' = 45 }

                  2、使用内置函数 dict()       dict(name = 'jack' , age = 20)
 

# 第一种方式
score = {'哈哈':100,'李四': 98,'王五': 95}
print(score)
print(type(score))
# 第二种方式
student = dict(name = 'jack',age = 20)
print(student)# 空字典
d = {}
print(d)
print(type(d))

四、字典的查询操作

字典中元素的获取:1、[] 方法

                                 2、get()方法

print(score['李四'])
print(score.get('戴晗'))
print(score['nana'])   #不存在就会报错
print(score.get('娜娜'))    #不存在就会显示None
print(score.get('娜娜',0))   #不存在指定一个值输出,代表不存在的默认值

五、字典的增、删、改操作

  • Key 的判断 :

in :指定的key在字典中存在就返回True

not in :指定的key 在字典中不存在就返回True

  • 字典元素的删除 del scores['张三']

  • 字典元素的新增 score ['nana'] = 90

print('娜娜' in score)   #元素的查找
print('娜娜' not in score)
del score['哈哈']   # 元素的删除
print(score)
score['哈哈'] = 99    #元素的增加
print(score)
score.clear()   #清空字典
score['哈哈'] = 90   #元素的修改
  • 获取字典视图的三个方法

1、keys():获取字典中所有的key

2、values():获取字典中所有value

3、items():获取字典中所有key,value

print(student.keys())
print(student.values())
print(student.items())
print(student.values())    #将所有的key组成的视图转成列表
  • 字典元素的遍历
score = {'哈哈':100,'李四': 98,'王五': 95}
for item in score:   #获取的是字典当中的keyprint(item,score[item],score.get(item))   #获取字典当中的值
'''
哈哈 100 100
李四 98 98
王五 95 95
'''

字典的特点:

1、字典中所有元素都是一个key - value 对,key不允许重复,value 可以重复

2、字典中的元素是无序的

3、字典中的key必须是不可变对象

4、字典也可以根据需要动态的伸缩

5、字典会浪费较大的内存,是一种使用空间换时间的数据结构

六、字典的推导式

内置函数zip():用于可迭代的对象作为参数,将对象中对应的元素打包成一个元祖,然后返回由这些元祖组成的列表。

print("-----字典生成式-------")
d = {item : random.randint(1,100) for item in range(4)}
print(d)# 创建两个列表
lst = [1001,1002,1003]
lst2 = ['哈哈','娜娜','滴滴']
d = {key:value for key,value in zip(lst,lst2)}
print(d)

 

集合类型:

1、py中集合与数学集合的概念一致

2、py中集合是一个无序的不重复元素序列

3、集合中只能存储不可变数据类型

4、py中用 {} 定义

5、与列表,字典一样,都是py中的可变数据类型

一、创建方式

1、使用 {} 直接创建集合

s = {10,20,30}
print(s)

2、使用内置函数 set() 创建集合

s = set('daihan')
print(s)   #无序并且不重复   {'h', 'a', 'n', 'i', 'd'}
s2 = set([10,20,30])
print(s2)   #{10, 20, 30}
s3 = set(range(1,10))
print(s3)   #{1, 2, 3, 4, 5, 6, 7, 8, 9}#创建一个空集合
d = set()#集合的删除
del s3

二、集合类型的操作符

#集合的操作符
A = {10,20,30,40,50,44}
B = {30,11,20,5,50,1,9}
#交集
print(A & B)   #{50, 20, 30}
# 并集
print(A | B)   #{1, 5, 40, 9, 10, 11, 44, 50, 20, 30}
#差集
print(A - B)  #{40, 10, 44}   A 除去AB交集剩下的部分
#补集
print(A ^ B)  #{1, 5, 40, 9, 10, 11, 44}  就是除去交集剩下的部分

三、集合的相关操作方法

#集合的相关操作
A.add(100)
print(A)  #{50, 20, 100, 40, 10, 44, 30}
A.remove(50)
print(A)   #{20, 100, 40, 10, 44, 30}
A.clear()
print(A)    #set()#集合的遍历
for item in B:print(item)# 1# 50# 20# 5# 9# 11# 30
for index ,item in enumerate(B):print(index,'--->',item)   
#0 ---> 1
# 1 ---> 50
# 2 ---> 20
# 3 ---> 5
# 4 ---> 9
# 5 ---> 11
# 6 ---> 30#集合的生成式
s = {i for i in range(1,10)}
print(s)   #{1, 2, 3, 4, 5, 6, 7, 8, 9}

四、列表、元祖、字典、集合比较

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

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

相关文章

Win11安装Docker

下载Docker Desktop for Windows 下载 下载连接:Install Docker Desktop on Windows | Docker Docs 地址在国外,需要科学上网。也可使用我提供的,百度网盘:https://pan.baidu.com/s/1232TTkkzLsoZyFjC3bmgiQ 安装 下载完成之后…

java深浅拷贝

目录 1、浅拷贝与深拷贝的区别 浅拷贝 深拷贝 2、浅拷贝实现 3、深拷贝实现 来都来了点个赞收藏一下再走呗~~~🌹🌹🌹🌹🌹 1、浅拷贝与深拷贝的区别 浅拷贝 定义:浅拷贝创建了一个新的对象&#xff0…

数据容器-小结

目录 一、数据容器特点比较 二、数据容器操作小结 1、通用序列操作 2、通用的转换操作 3、案例演示 一、数据容器特点比较 二、数据容器操作小结 1、通用序列操作 2、通用的转换操作 3、案例演示 1)list([iterable]):转换成列表 str_a "…

Vue.js 2 项目实战(八):小黑记事本组件版

前言 Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它的设计初衷是通过采用简洁且强大的结构,使前端开发变得更简单和高效。以下是对 Vue.js 的详细介绍: 核心特性 声明式渲染 Vue.js 使用声明式语法来描述用户界面,通过数据绑…

Python酷库之旅-第三方库Pandas(049)

目录 一、用法精讲 176、pandas.Series.rank方法 176-1、语法 176-2、参数 176-3、功能 176-4、返回值 176-5、说明 176-6、用法 176-6-1、数据准备 176-6-2、代码示例 176-6-3、结果输出 177、pandas.Series.sem方法 177-1、语法 177-2、参数 177-3、功能 177…

深入探索Python3网络爬虫:构建数据抓取与解析的强大工具

前言 在当今这个信息爆炸的时代,数据成为了驱动各行各业发展的关键要素。无论是市场分析、用户行为研究,还是内容聚合与推荐系统,都需要从海量的互联网数据中提取有价值的信息。而网络爬虫,作为自动化获取网页数据的技术手段&…

JVM系列(二) -类的加载过程

一、背景介绍 我们知道 Java 是先通过编译器将.java类文件转成.class字节码文件,然后再通过虚拟机将.class字节码文件加载到内存中来实现应用程序的运行。 那么虚拟机是什么时候加载class文件?如何加载class文件?class文件进入到虚拟机后发…

后端解决跨域(Cross-Origin Resource Sharing)(三种方式)

注解CrossOrigin 控制层的类上或者方法上加注解CrossOrigin 实现接口并重写方法 Configuration public class CorsConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {// 设置允许跨域的路径registry.addMapping("/**&qu…

教您批量下载天猫图片信息,节省时间

图片在电商中至关重要,高质量的商品图片能吸引顾客注意,提升购买欲望。好的图片可以直观展示产品特性,帮助消费者了解商品,减少疑问和退换货率。同时,优质的视觉呈现增强品牌形象,提高转化率,促…

【Django】ajax和django接口交互(获取新密码)

文章目录 一、需求1. 效果图 二、实验1. 写get接口后端2. 写html后端3. 写前端4. 测试 一、需求 1. 效果图 二、实验 1. 写get接口后端 写views import string import random def getnewpwd(request):words list(string.ascii_lowercasestring.ascii_uppercasestring.digi…

大模型算法面试题(十三)

本系列收纳各种大模型面试题及答案。 1、微调后的模型出现能力劣化,灾难性遗忘是怎么回事 微调后的模型出现能力劣化,灾难性遗忘(Catastrophic Forgetting)是一个在机器学习领域,尤其是在深度学习和大模型应用中频繁出…

特斯拉财报看点:FSD拳打华为,Robotaxi 脚踢百度

大数据产业创新服务媒体 ——聚焦数据 改变商业 特斯拉发最新财报了,这不仅是一份财务报告,更是一张未来发展的蓝图。在这份蓝图中,两个关键词格外耀眼——FSD(全自动驾驶系统)和Robotaxi(无人驾驶出租车&…

探索科技新境界,体验系统维护的极致自由—蓝屏工具箱4.0全新登场

官网:蓝屏工具箱官网 下载链接:蓝屏工具箱最新版安装包官方版下载 在数字化浪潮席卷全球的今天,软件工具已不仅仅是简单的代码集合,它们如同工匠手中的雕刻刀,精细打磨、雕琢着数字世界的每一个角落。创峄公司深谙此道…

基于多种机器学习算法的短信垃圾分类模型

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主导入第三方库读取数据数据预处理数据分析与可视化机器学习建模贝叶斯逻辑回归支持向量机随机森林XGBoost总结每文一语 有需要本项目的代码或文档以及全部资源,或者部署调试可以私…

【数据结构初阶】单链表经典算法题十二道——得道飞升(中篇)

hi,bro—— 目录 5、 链表分割 6、 链表的回文结构 7、 相交链表 8、 环形链表 【思考】 —————————————— DEAD POOL —————————————— 5、 链表分割 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), …

学懂C语言(十八):C语言中数组及其应用

目录 一、数组的概念 二、数组的声明、初始化及访问 1、声明 2、初始化 3、访问数组元素 三、数组的应用 1. 存储和处理数据 2. 字符串处理 3. 多维数组 4. 函数参数 5、注意事项 一、数组的概念 C语言中的数组是一种数据结构,用于存储一…

el-image预览图片点击遮盖处关闭预览

预览关闭按钮不明显 解决方式: 1.修改按钮样式明显点: //el-image 添加自定义类名,下文【test-image】代指 .test-image .el-icon-circle-close{ color:#fff; font-size:20px; ...改成很明显的样式 }2.使用事件监听,监听当前遮…

web前端开发一、VScode环境搭建

1、VScode安装live server插件,写完代码后,保存就会在浏览器自动更新,不需要再去浏览器点击刷新了 2、创建html文件 3、在文件中输入感叹号 ! 4、选择第一个,然后回车,就会自动输入html的标准程序 5、…

我在百科荣创企业实践——简易函数信号发生器(6)

对于高职教师来说,必不可少的一个任务就是参加企业实践。这个暑假,本人也没闲着,报名参加了上海市电子信息类教师企业实践。7月8日到13日,有幸来到美丽的泉城济南,远离了上海的酷暑,走进了百科荣创科技发展有限公司。在这短短的一周时间里,我结合自己的教学经验和企业的…

20240724-然后用idea创建一个Java项目/配置maven环境/本地仓储配置

1.创建一个java项目 (1)点击页面的create project,然后next (2)不勾选,继续next (3)选择新项目名称,新项目路径,然后Finsh,在新打开的页面选择…