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...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...