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.hqwc.cn/news/139476.html

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

相关文章

【Linux】UDP协议

文章目录 &#x1f4d6; 前言1. 再谈端口号1.1 端口号划分范围&#xff1a;1.2 端口和进程的关系&#xff1a;1.2 - 1 netstat1.2 - 2 pidof 1.3 源端口和目的端口&#xff1a; 2. UDP协议2.1 UDP协议格式&#xff1a; 3. 再谈write/read4. UDP需要接收/发送缓冲区吗5. UDP使用…

Operator 开发实践 四 (WebHook)

1. WebHook介绍 我们知道访问Kubernetes API有好几种方式&#xff0c;比如使用kubectl命令、使用client-go之类的开发库、直接通过REST请求等。不管是一个使用kubectl的真人用户&#xff0c;还是一个Service Account&#xff0c;都可以通过API访问认证&#xff0c;这个过程官网…

5+非肿瘤分析,分型+WGCNA+机器学习筛选相关基因

今天给同学们分享一篇非肿瘤分型机器学习WGCNA实验的生信文章“Identification of diagnostic markers related to oxidative stress and inflammatory response in diabetic kidney disease by machine learning algorithms: Evidence from human transcriptomic data and mou…

竞赛选题 深度学习中文汉字识别

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习中文汉字识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xf…

缺失找不到msvcr71.dll无法执行代码,应用程序无法启动的解决方法

最近我在使用电脑时遇到了一个问题&#xff0c;提示我缺少 msvcr71.dll 这个文件。这个文件是系统中的一个动态链接库文件&#xff0c;常用于支持一些运行在 Windows 系统上的程序。 当我发现这个问题时&#xff0c;我感到有点困惑和焦虑。因为我需要使用的软件要求系统中必须…

一键式AI智能剪辑,轻松处理视频,释放无限创意!“

想象一下&#xff0c;您可以在几秒钟内完成一个复杂的视频剪辑&#xff0c;而无需投入大量的时间和精力。现在&#xff0c;这个梦想已经成为现实&#xff01;我们的新一代AI智能剪辑技术&#xff0c;将使视频处理变得轻松无压力。 第一步&#xff1a;首先进入好简单批量智剪主…

漫谈下一代防火墙与Web应用防火墙的区别

如今&#xff0c;Web应用程序变得越来越复杂&#xff0c;更是黑客非常感兴趣的目标。在谈到网络安全的话题时&#xff0c;我们总会讨论下一代防火墙与Web应用防火墙的区别。当已经拥有下一代防火墙&#xff08;NGFW&#xff09;时&#xff0c;为什么需要Web应用程序防火墙&…

YOLOv5-理论部分

YOLOv5 作者: Ultralytics 论文源码: https://github.com/ultralytics/yolov5 Ultralytics&#xff1a;“超视觉技术” / “超视觉系统” 0. 引言 “YOLOv5 &#x1f680; 是世界上备受喜爱的视觉人工智能&#xff0c;代表了 Ultralytics 对未来视觉人工智能方法的开源研究&a…

k8s-20 hpa控制器

hpa可通过metrics-server所提供pod的cpu 或者内存的负载情况&#xff0c;从而动态拉伸控制器的副本数&#xff0c;从而达到后端的自动弹缩 官网&#xff1a;https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/ 上传镜像 压测 po…

【广州华锐互动】VR建筑安全培训体验为建筑行业人才培养提供有力支持

随着建筑行业的快速发展&#xff0c;建筑施工安全问题日益受到广泛关注。然而&#xff0c;传统的安全培训方式往往缺乏实践性和真实性&#xff0c;难以让员工真正掌握安全操作技能。近年来&#xff0c;虚拟现实(VR)技术的广泛应用为建筑施工安全培训提供了新的机遇。 虚拟现实技…

山西电力市场日前价格预测【2023-10-19】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-19&#xff09;山西电力市场全天平均日前电价为210.83元/MWh。其中&#xff0c;最高日前电价为337.00元/MWh&#xff0c;预计出现在18: 30。最低日前电价为0.00元/MWh&#xff0c;预计出…

【yolov8系列】yolov8的目标检测、实例分割、关节点估计的原理解析

1 YOLO时间线 这里简单列下yolo的发展时间线&#xff0c;对每个版本的提出有个时间概念。 2 yolov8 的简介 工程链接&#xff1a;https://github.com/ultralytics/ultralytics 2.1 yolov8的特点 采用了anchor free方式&#xff0c;去除了先验设置可能不佳带来的影响借鉴Genera…