python_基础编程_字典、集合

news2024/11/23 22:04:03

字典类型:

一、什么是字典

字典:是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:   #获取的是字典当中的key
    print(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.coloradmin.cn/o/1953492.html

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

相关文章

Redhat 7.9上配置达梦数据库的DM 数据守护(DM Data Watch)

Redhat 7.9上配置达梦数据库的DM 数据守护(DM Data Watch) 一 基础环境 端口说明: 注: 主库已经安装软件,及创建数据库实例。并已开启归档模式。 [dmdbatest1 tool]$ disql sysdba/Dameng123 服务器[LOCALHOST:523…

Cuda入门

文章目录 下载使用NsightAPI__ldg 函数实现1. Sigmoid2. warpReduceSum 参考学习资料 下载使用Nsight https://developer.nvidia.com/nsight-systems/get-startedsudo ln -s /opt/nvidia/nsight-systems/2024.4.1/bin/nsys /bin/nsysnsys profile --statstrue addAPI __ldg …

kotlin协程-- 基础概念 ①|创建和使用

引言 首先先说一些相关概念 1.并发与并行 在操作系统中我们曾经学到过并发与并行 并发: 是同一个时刻只有一条指令在执行,其他指令没有再执行,但是由于CPU的时间片特别短,导致多个指令来回切换的时间间隔特别短,就好像是同一时间多条指令在执行。单核CPU与多核CPU都可以进…

渗透测试之漏洞 ms08-067 利用实验

实验背景 在安全服务项目中,需要对系统进行风险评估,其中风险评估的第一步:漏洞扫描即漏扫,在客户授权的前提下,对授权目标实施扫描并生成漏扫报告;在漏扫结束后,为了其准确性和完整性,还需对目标进行渗透…

FPGA FIFO IP核(3)- 仿真

仿真思路 如何在写入标志信号(写入请求信号)有效时将数据写入到FIFO中? 在调用模块代码中,pi_flag每四个时钟周期产生一个有效信号,即写请求信号。每次当pi_data检测到pi_flag信号有效时加1,从0~255循环变…

PDF怎么压缩?在线pdf压缩VS PDF压缩软件,谁更好用?10款工具详细多方位测评

PDF怎么压缩?PDF文件压缩可以使用本地文件压缩软件,也可以在网页上使用在线压缩工具一键压缩。 在日常工作和生活中,PDF文件因其跨平台性和良好的保持格式不变的能力而广受欢迎。然而,随着PDF文件内容的增加,文件大小也…

【JavaScript】详解Day.js:轻量级日期处理库的全面指南

文章目录 一、Day.js简介1. 什么是Day.js?2. 安装Day.js 二、Day.js的基本用法1. 创建日期对象2. 格式化日期3. 解析日期字符串4. 操作日期5. 比较日期 三、Day.js的高级功能1. 插件机制2. 国际化支持 四、实际应用案例1. 事件倒计时2. 日历应用 在JavaScript开发中…

如何免费实现网站HTTPS访问

在当今数字化的世界中,网络安全问题愈发凸显其重要性。对于网站而言,实现HTTPS访问已经成为提升用户信任度和保障数据安全的重要手段。然而,对于许多小型网站和个人博客来说,购买SSL证书可能是一笔不小的开销。下面将介绍如何免费…

基于微信小程序+SpringBoot+Vue的儿童预防接种预约系统(带1w+文档)

基于微信小程序SpringBootVue的儿童预防接种预约系统(带1w文档) 基于微信小程序SpringBootVue的儿童预防接种预约系统(带1w文档) 开发合适的儿童预防接种预约微信小程序,可以方便管理人员对儿童预防接种预约微信小程序的管理,提高信息管理工作效率及查询…

【数据结构】单链表带头双向循环链表的实现

一、链表的概念及结构 1.链表的概念 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 2.链表的结构 一般讲的链表包括数据域和指针域: 二、链表的种类 实际中链表的结构…

云HIS系统源码,业务云协同和数据云协同的数字化医院信息系统

云HIS是利用云计算、大数据、物联网、移动互联网等技术,打造的一个安全、便捷、共享、协同的医疗互联网云生态平台。核心功能是业务云协同和数据云协同。云HIS具有可扩展、易共享、易协同、低成本、体验号、更便捷、易维护的优势,重新定义了数字化医院信…

Intel(R) Wireless-AC 9462 WLAN已关闭开不起来的可能原因

最近给老电脑机械师T90重装系统,装好各种驱动之后,发现无线功能开不起来,WLAN已关闭不管怎么操作都开不起来 最后尝试把笔记本的无线网卡重新插了一下就正常了

freertos的学习cubemx版

HAL 库的freertos 1 实时 2 任务->线程 3 移植 CMSIS_V2 V1版本 NVIC配置全部是抢占优先级 第四组 抢占级别有 0-15 编码规则, 变量名 :类型前缀, c - char S - int16_t L - int32_t U - unsigned Uc - uint8_t Us - uint…

sheng的学习笔记-AI-公式-指数加权移动平均(EWMA)

AI目录:sheng的学习笔记-AI目录-CSDN博客 基础知识 指数加权移动平均(Exponential Weighted Moving Average),是一种常用的序列处理方式 看例子,首先这是一年365天的温度散点图,以天数为横坐标&#xff0…

C++进阶(9)C++11

个人主页:仍有未知等待探索-CSDN博客 专题分栏:C 目录 一、统一列表初始化 二、变量类型推导 1、auto 2、decltype 3、typeid 三、左值/右值 1、左值引用/右值引用(粗) 2、右值 3、右值引用(细) 1…

135.分发糖果,遍历方向+candy选取的详解

力扣135分发糖果 题目思路代码 题目 https://leetcode.cn/problems/candy/description/ 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子…

【Python机器学习】朴素贝叶斯——使用Python进行文本分类

目录 准备文本:从文本中构建词向量 训练算法:从词向量计算概率 测试算法:根据现实情况修改分类器 准备数据:文档词袋模型 要从文本中获取特征,需要先拆分文本。这里的特征是来自文本的词条,一个词条是字…

大脑网络交互分析:公式与应用

大脑网络交互分析:公式与应用 核心概念与重要性 大脑网络交互分析是神经科学研究中的重要领域,它关注大脑不同区域之间的连接与交互方式。通过分析大脑网络,我们可以理解大脑如何处理和整合信息,进而揭示认知、情感和行为的神经…

java 集合框架-map(键值对集合)

一、Map接口 (键值对集合) 1.实现类 (1).线程不安全 HashMap 1.特点: ①无序 ②查找效率高:根据key,查找value 2.数据结构:数组(哈希表) 链表(链地址法解决哈希表冲突) 红黑树&#xff0…