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)
  • 上面包含了大部分常用方法,更多方法可查阅官方文档
  • 集合更多用于多个集合的处理比较中

更多方法可见:

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

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

相关文章

Qt工具开发,该不该跳槽?

Qt工具开发&#xff0c;该不该跳槽? 就这样吧&#xff0c;我怕你跳不动。 嵌入式UI&#xff0c;目前趋势是向着LVGL发展。QT已经在淘汰期了。很多项目还在用&#xff0c;但技术上已经落后。QT短期内不会全面淘汰&#xff0c;但退位让贤的大趋势已经很清楚了。 最近很多小伙伴…

liunx下软链接和硬链接的用法

什么是软链接&#xff08;类似快捷方式&#xff09;&#xff1a; 符号连接&#xff08;Symbolic Link&#xff09;&#xff0c;也叫软连接。 软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中&#xff0c;文件实际上是一个文本文件&#xff0c…

嵌入式开发学习之STM32F407串口(USART)收发数据(三)

嵌入式开发学习之STM32F407串口&#xff08;USART&#xff09;收发数据&#xff08;三&#xff09; 开发涉及工具一、选定所使用的串口二、配置串口1.配置串口的I/O2.配置串口参数属性3.配置串口中断4.串口中断在哪里处理5.串口如何发送字符串 三、封装串口配置库文件1.创建头文…

【OpenVINO】OpenVINO C# API 常用 API 详解与演示

OpenVINO C# API 常用 API 详解与演示 1 安装OpenVINO C# API2 导入程序集 3 初始化OpenVINO 运行时内核4 加载并获取模型信息4.1 加载模型4.2 获取模型信息 5 编译模型并创建推理请求6 张量Tensor6.1 张量的获取与设置6.2 张量的信息获取与设置 7 加载推理数据7.1 获取输入张量…

循环日程安排问题(分治法)

函数接口定义&#xff1a; void Plan(int a[][N],int k); 裁判测试程序样例&#xff1a; #include #include <math.h> #include using namespace std; #define N 100 void Plan(int a[][N],int k); int main() { int i,j,a[N][N],k,size; cin>>k; sizepow(2,k)…

金山终端安全系统V9.0 SQL注入漏洞复现

0x01 产品简介 金山终端安全系统是一款为企业提供终端防护的安全产品&#xff0c;针对恶意软件、病毒和外部攻击提供防范措施&#xff0c;帮助维护企业数据和网络。 0x02 漏洞概述 金山终端安全系统V9.0 /inter/update_software_info_v2.php页面存在sql注入漏洞&#xff0c;该…

VsCode通过Git History插件查看某个页面的版本修改记录

首先需要安装插件Git History 方式一&#xff1a;通过 点击File History 查看某个文件变更&#xff1b;即通过commit的提交记录去查看某个文件的修改 方式二&#xff1a;通过点击选择toggle File Blame 查看当前页面每一行所有提交修改记录

通讯协议学习之路:USART协议理论

通讯协议之路主要分为两部分&#xff0c;第一部分从理论上面讲解各类协议的通讯原理以及通讯格式&#xff0c;第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN&#xff1b;视频会发布在bilibili(UID:399951374) 一、…

手机抬手亮屏解锁,用到了哪些硬件?

随着时代发展&#xff0c;智能手机以丰富的功能及便利性&#xff0c;成为了人们必不可少的物品&#xff0c;其中人脸解锁功能是非常有用的功能&#xff0c;广受年轻人的喜爱&#xff0c;那么你知道她是如何实现吗&#xff1f;今天凡小亿带你们探索&#xff01; 手机抬手亮屏解锁…

mysql—表单二

一、查询环境 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下&#xff1a; CR…

4-k8s-部署springboot项目简单实践

文章目录 一、部署原理图二、部署实践 一、部署原理图 部门一般都有一个属于自己的私服gitlab服务器&#xff0c;由开发者开发代码&#xff0c;然后上传到私服gitlab然后使用调度工具&#xff0c;如jenkins&#xff0c;去gitlab拉去代码&#xff0c;编译打包&#xff0c;最后得…

【ELK 使用指南 1】ELK + Filebeat 分布式日志管理平台部署

ELK和EFLK 一、前言1.1 日志分析的作用1.2 需要收集的日志1.3 完整日志系统的基本特征 二、ELK概述2.1 ELK简介2.2 为什么要用ELK?2.3 ELK的组件 三、ELK组件详解3.1 Logstash3.1.1 简介3.1.2 Logstash命令常用选项3.1.3 Logstash 的输入和输出流3.1.4 Logstash配置文件 3.2 E…

STM32 BootLoader设置

编写bootloader程序&#xff1a; 直接复制下面代码到自己程序中。 typedef void (*iapfun)(void); //定义一个函数类型的参数. iapfun jump2app; //设置栈顶地址 //addr:栈顶地址 __asm void MSR_MSP(u32 addr) {MSR MSP, r0 //set Main Stack valueBX r14 }//跳转到…

解决容器内deepspeed微调大模型报错

解决容器内deepspeed微调大模型报错&#xff1a;[launch.py:315:sigkill_handler] Killing subprocess 问题描述&#xff1a;解决办法 问题描述&#xff1a; 在容器中用deepspeed微调百川大模型2时&#xff0c;出现上述错误&#xff0c;错误是由于生成容器时&#xff0c;共享内…

七个开发者不可不知的VS Code小技巧

本文就来分享 7 个极大提高开发效率的 VS Code 技巧&#xff01; 目录 1.固定滚动&#xff08;Sticky Scroll&#xff09; 2.命令面板&#xff08;Command Palette&#xff09; 3.自定义代码片段&#xff08;Custom Snippets&#xff09; 4.文件查找&#xff08;File Finde…

SpringBoot实现SSMP整合

一、整合JUnit 1、Spring 整合 JUnit 核心注解有两个&#xff1a; RunWith(SpringJUnit4ClassRunner.class) 是设置Spring专用于测试的类运行器&#xff08;Spring程序执行程序有自己的一套独立的运行程序的方式&#xff0c;不能使用JUnit提供的类运行方式&#xff09;Conte…

十个面试排序算法

一、 前言 最常考的是快速排序和归并排序&#xff0c;并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排序可能会要求比较各自的优劣、各种算法的思想及其使用场景…

Kotlin中的比较运算符

在Kotlin中&#xff0c;我们可以使用比较运算符进行值的比较和判断。下面对Kotlin中的等于、不等于、小于、大于、小于等于和大于等于进行详细介绍&#xff0c;并提供示例代码。 等于运算符&#xff08;&#xff09;&#xff1a; 等于运算符用于判断两个值是否相等。如果两个值…

[Python中常用的回归模型算法大全:从线性回归到XGBoost]

文章目录 概要保序回归&#xff1a;理论与实践多项式回归&#xff1a;探索数据曲线关系多输出回归的示例 概要 在数据科学和机器学习领域&#xff0c;回归分析是一项关键任务&#xff0c;用于预测连续型变量的数值。除了传统的线性回归模型外&#xff0c;Python提供了丰富多样…

一文带你GO语言入门

什么是go语言? Go语言(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go语言的主要特点包括:- 简洁和简单 - 语法简单明快,易于学习和使用 特点 高效 编译速度快,执行效率高 并发支持 原生支持并发,利用goroutine实现高效的并发…