Python学习笔记——存储容器
- 食用说明:本笔记适用于有一定编程基础的伙伴们。希望有助于各位!
列表
列表类似数组,其中可以包含不同类型的元素,写法如下:
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
- 通常情况下我们使用方括号包裹多个元素,组成列表
列表的相关方法
list1 = [1, 2, 3, 4, 5, 6, 7, 8]# 第一个冒号 : 表示切片操作的开始。# 第二个冒号 : 表示切片操作的结束。# 3是步长(stride),表示每隔3个元素选择一次。print(list1[0:8:3])# 寻找元素的下标print(list1.index(2))# 寻找元素出现的次数print(list1.count(2))# 翻转数组print(list1.reverse())# 排序数组print(list1.sort())# 移除最后一个元素print(list1.pop())# 移除特定位置元素print(list1.pop(0))# 移除列表中以值指定元素的索引,默认移除首个元素print(list1.remove(3))# 添加元素list1.append(9)# 插入元素list1.insert(0, 0)# 删除某个元素del list1[0]print(list1)# 删除列表list1.clear()
- 以上为列表常用方法,此处可以用于回顾翻阅
- 其中pop和append方法类似于JS中pop和unshift方法
- remove方法更类似于JS中的splice方法,但通常情况下remove的参数值时一个元素值而非下标
元组
元组是一种只读不可修改的列表:
>>> tup1 = ('Google', 'Runoob', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5 )
>>> tup3 = "a", "b", "c", "d" # 不需要括号也可以
>>> type(tup3)
<class 'tuple'>
- 元组常用于一些数据集合,而这些数据集合又不可被更改
元组的相关方法
tuple1 = (1, 2, 3, 4, 5)tuple2 = (1, 2, 3, 4, 5)tuple3 = tuple1 + tuple2# 长度print(len(tuple3))# 最大值print(max(tuple3))# 最小值print(min(tuple3))# 寻找元素出现次数print(tuple3.count(1))# 寻找第一个元素所在位置print(tuple3.index(1))list1 = [1, True, [1, 2]]# 可迭代类型转化为元组类型tuple4 = tuple(list1)print(type(tuple4), tuple4)
- 由于元组的不可修改性,其不包含元素的修改和排序等内置方法
- 虽然元组内元素不可修改,但其自身可以通过del关键字删除
- 同样的,查询元素与列表类似
字典
字典类似JS中的对象:

- 字典由键值对组成,与JS不同的是键必须使用引号包裹
字典的相关方法
# 使用内建函数初始化字典类型dict1 = dict()print(type(dict1), dict1)# 字典更新dict1['name'] = 'Pole'# 访问字典print(dict1['name'])# 删除字典元素del dict1['name']print(dict1)# 新增元素dict1['name'] = 'pole'# 浅拷贝dict2 = dict1.copy()print(type(dict2), dict2)# 生成新的字典类型,第一个参数是可迭代类型,一般是一个键列表,第二个参数是值dict3 = dict1.fromkeys(dict1, 'Pole')print(dict3)# 获取某个键的值print(dict1.get('name'))# 查询对应键是否在字典中print('name' in dict1)# 返回所有键,默认返回视图对象print(dict1.keys())# 返回字典,默认返回视图对象print(dict1.items())# 返回字典值,默认返回视图对象print(list(dict1.values())[0])# 从其他字典中加入现有字典newDict = {'age': 19}newTuple = [('isMarried', True), ('isMale', False)]dict1.update(newDict)dict1.update(newTuple)print(dict1)# 删除对应键值对,并返回dict1.pop('isMale')print(dict1)# 删除对应键值对,并返回kvTuple1 = dict1.popitem()print(kvTuple1)print(dict1)
- 字典的方法众多,其中对对象的键和值操作较为常用
- update方法常用于对字典的扩充
- 需要注意的是keys、values、items都返回视图对象
集合
parame = {value01,value02,...}
或者
set(value)
集合(set)是一个无序的不重复元素序列。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
我们可以通过一个例子来展示其特殊的用途:
# 一个简单的应用,在一串字符串中剔除特定字符,并获取特异字符set2 = {x for x in 'sdhnfkjabjfbasdkjhf' if x not in 'abcd'}print(set2)
集合的常用方法
# 添加元素set1.add(6)print(set1)# 添加多个元素set1.update((1, 7, 8))print(set1)# 删除元素,元素不存在,则会发生错误set1.remove(1)print(set1)# 删除多个元素,元素不存在,不会错误set1.discard(1)print(set1)# 删除任意元素print(set1.pop())print(set1)# 计算个数print(len(set1))set2 = {1, 2, 3, 1, 2, 3, 5}# 差集print(set1.difference(set2))# 交集print(set1.intersection(set2))# 并集print(set1.union(set2))# 对称差print(set1.symmetric_difference(set2))# 对称差合并set1.symmetric_difference_update(set2)print(set1)
- 上面包含了大部分常用方法,更多方法可查阅官方文档
- 集合更多用于多个集合的处理比较中
更多方法可见:

相关文章:
Python学习笔记——存储容器
食用说明:本笔记适用于有一定编程基础的伙伴们。希望有助于各位! 列表 列表类似数组,其中可以包含不同类型的元素,写法如下: list1 [Google, Runoob, 1997, 2000] list2 [1, 2, 3, 4, 5 ] list3 ["a", …...
Android DI框架-Hilt
到底该如何理解<依赖注入> 模版代码:食之无味,弃之可惜 public class MainActivity extends Activity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TextView mTextView(TextView) findVi…...
基于寄生捕食优化的BP神经网络(分类应用) - 附代码
基于寄生捕食优化的BP神经网络(分类应用) - 附代码 文章目录 基于寄生捕食优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.寄生捕食优化BP神经网络3.1 BP神经网络参数设置3.2 寄生捕食算法应用 4.测试结果…...
【Java常见的几种设计模式】
Java常见的几种设计模式 1. 单例模式(Singleton Pattern)2. 工厂模式(Factory pattern)3. 抽象工厂模式(Abstract Factory Pattern)4. 建造者模式(Builder Pattern)5. 原型模式&…...
jupyter崩溃进不去,报错module ‘mistune‘ has no attribute ‘BlockGrammar‘
是python包引起的问题 [E 2023-10-14 08:40:25.414 ServerApp] Uncaught exception GET /api/nbconvert?1697244025327 (127.0.0.1) HTTPServerRequest(protocol‘http’, host‘localhost:8090’, method‘GET’, uri‘/api/nbconvert?1697244025327’, version‘HTTP/1.1’…...
windows terminal鼠标右键打开
如果在官网上下载的是zip文件的 需要在注册表修改鼠标右键才能出来 注册表修改如下: 1.先windowsR,在命令框中输入regedit 打开注册表 2.在路径’计算机\HKEY_CLASSES_ROOT\directory\background\shell’下新建一个wt,wt下新建commond 这里…...
HTML5播放 M3U8的hls流地址
在HTML5页面上播放M3U8的hls流地址 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>视频播放</title> <script src"https://cdn.jsdelivr.net/npm/hls.jslatest"></script> &…...
leetcode:101.对称二叉树
借用二叉树是否相同的代码改动左右孩子相等对应关系,即为是否对称。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/bool isSameTree(struct TreeNode* p, struct Tr…...
UI自动化的适用场景,怎么做?
经常有人会问,什么样的项目才适合进行UI自动化测试呢?UI自动化测试相当于模拟手工测试,通过程序去操作页面上的控件。而在实际测试过程中,经常会遇到无法找到控件,或者因控件定义变更而带来的维护成本等问题。 哪些场…...
SpringFramewrok (1)
1、框架的概念与理解 在现实生活中,框架可以比喻为我们搭建房子的框架。 在框架的基础上,我们可以专注于我们自己的工作,而不用在意这些底层工作如何实现。 框架的优点包括以下几点: 1. 提高开发效率:框架提供了许多…...
电商独立站小程序开发方案
随着移动互联网的迅速发展,电商行业也逐渐向小程序平台转移。开发一款电商小程序对于拓展销售渠道、提高用户体验、增加用户忠诚度等方面都有着重要的意义。本文将围绕电商小程序的开发背景、需求分析、技术选型、开发流程、风险控制、商业模式和市场前景等方面进行…...
数据库安全运维是什么意思?数据库安全运维系统用哪家好?
我们大家都直到数据在某些情况下容易丢失或被破坏,攻击者可能通过对数据库进行破坏或勒索等手段获取利益。所以保障数据库安全至关重要。今天我们就来聊聊数据库安全运维是什么意思?数据库安全运维系统用哪家好? 数据库安全运维是什么意思&…...
小程序的console中出现:。。。不在以下 request 合法域名列表中,请参考文档:。。。的报错解决
报错效果: 其实这个报错不代表自己的代码有问题 但是本强迫症研究了一下,按照以下方法关掉就不会显示这个报错了。 点微信开发者工具中的右上角的详情。点本地设置。勾选不校验。。。HTTPS证书。 即可关闭该报错:...
计算机网络基础(三):IPv4编址方式、子网划分、IPv4通信的建立与验证及ICMP协议
**IPv4地址是一个32位长的二进制数。**而这个32位二进制数又通常会表示为4个用点隔开的十进制数。那么,这个32位二进制数要如何通过4个十进制数表示出来呢? 我们在配置IPv4地址时,同时配置的“掩码”又有何用途? 1.IPv4编址方式…...
Error: GlobalConfigUtils setMetaData Fail Cause:java.lang.NullPointerException
文章目录 1、在开发中会出现这样的错误。2、其次,再看其他错误: 1、在开发中会出现这样的错误。 完整错误:Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause…...
OpenHarmony 应用全局的 UI 状态存储:AppStorage
AppStorage 是应用全局的 UI 状态存储,是和应用的进程绑定的,由 UI 框架在应用程序启动时创建,为应用程序 UI 状态属性提供中央存储。 和 AppStorage 不同的是,LocalStorage 是页面级的,通常应用于页面内的数据共享。而…...
外置告警蜂鸣器使用小坑
告警蜂鸣器调试小坑 昨天调试新产品,由于IMO、MSC组织和IEC标准规定,不能使用带红色指示灯的蜂鸣器,于是更换了个不带灯。然而奇怪的现象出现了两次短响的程序在有的页面正常,有的页面就变成一声了。搞了一天,把各种寄…...
SSO身份验证如何帮助加强密码安全性
单点登录 (SSO) 是一种身份验证服务,可帮助用户使用一组凭据快速安全地访问所有应用程序。在员工需要访问多个应用程序才能完成工作的企业环境中,每次需要访问时都必须为每个应用程序输入登录凭据,这是一个主要的烦恼来…...
JIRA 在 2024 年完全停止服务器版本支持
在服务器上的开源许可证版本已经要过期了,想去更新下。 发现,JIRA 的所有服务器版本的支持马上就要结束了。 这就意味着,如果你部署的服务器版本的 JIRA 的话,你将没有办法对服务器进行更新。 貌似,必须使用 JIRA 提供…...
Ubuntu18.04安装gdal3.4
一.依赖关系 所以,安装顺序:SQLite -> Proj -> Gdal...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
