网站建设一条龙/百度人工客服
数据容器入门
Python中的数据容器:
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素
每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
数据容器根据特点的不同,如:是否支持重复元素,是否可以修改,是否有序,等
分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
数据容器:
1、List(列表)入门
1、list(列表)就是C语言里的数组。
字面量:[元素1,元素2,元素3]
定义变量:变量名称 = [元素1,元素2,元素3]
定义空列表:
变量名称 = [] 或 变量名称 = list()
元素可以是不同类型。例如:
list1 = ['Hello', 111, True]
2、列表可以嵌套:
list2 = [['Hello', 111, True], ['world', 222, False]]
3、可以使用列表的下标索引从列表中取出元素
list1 = ['Hello', 111, True] print(list1[0]) # 输出Hello print(List[-1]) # 反向索引,输出 True,从-1开始,依次递减 -1,-2……list2 = [['Hello', 111, True], ['world', 222, False]] print(list2[1]) print(list2[0][1])""" 输出结果: ['world', 222, False] 111 """
4、列表的常用方法(操作)
插入元素、删除元素、清空列表、修改元素、统计元素个数
等等功能,这些功能我们都称之为:列表的方法在Python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法
class Student:def add(self,x,y):return x+y
方法和函数功能一样,有传入参数,有返回值,只是方法的使用格式不同,只有这一点不同:
函数的使用:num add(1,2)
方法的使用:student = Student()num = student.add(1,2)
列表内部提供了很多方法:注意:方法后是小括号()
方法 功能或注意点 查找: 列表名.index(元素)
查找指定元素在列表的下标
如果找不到,报错ValueError
修改:列表名[下标] = 值 是重新赋值,“列表名[下标] = 值”中的值会替换原来的值 插入:
列表名.insert(下标,元素)
是在指定的地方插入指定的元素,“列表名.index(下标,元素)”就是在该下标下插入该元素。
需要注意的是:1、这里是insert,不是index。
2、插入后,后面的元素会后移,而不是被替换掉。
3、是小括号,不是中括号。
追加:
单个元素:
列表名.append(元素)
列表名.extend(其他数据容器)
append()是将指定元素追加到列表的尾部。
extend()是将其他数据容器的内容取出,依次追加到列表尾部。
通过指定下标来删除:
1、del 列表名[下标]
2、列表名.pop(下标)
通过指定元素来删除:
列表名.remove(元素)
通过指定元素来删除时,是删除某元素在列表中的第一个匹配项 清空列表:
列表名.clear()
结果:[] 统计某元素在列表内的数量:
列表名.count(元素)
不可以查询到表中表的内容。 统计列表长度
len(列表名)例如:
# 查询方法 list1 = ["Hello", "World", "!"] index = list1.index("Hello") print(index) # 输出结果:0 (这表明是正向的索引)list2 = [["Hello", 111, True], ['world', 222, False]] index = list2.index("Hello") print(index) # 输出:ValueError: 'Hello' is not in list ''' 要查找的元素 "Hello" 是一个字符串, 而列表中的元素是嵌套列表。 在这种情况下,需要使用循环来遍历列表 并检查子列表中的元素。 否则会报错。 修正后:↓ ''' for i in range(len(list2)):if "Hello" in list2[i]:index = ibreak print(index) # 输出结果:0
# 修改元素值 list1 = ["Hello", "World", "!"] list1[1] = "Python" # 正向下标 list1[-1] = "~" # 反向下标 print(list1) # 输出结果:['Hello', 'Python', '~']
# 插入元素值 list1 = ["Hello", "World", "!"] list1.insert(1,"Python") list1.insert(-1, "~") print(list1) # 输出结果:['Hello', 'Python', 'World', '~', '!']
# 追加元素 list1 = ["Hello", "World", "!"] list1.append("~") print(list1) # 输出结果:['Hello', 'World', '!', '~']list2 = [1, 2, 3] list2.append([4, 5, 6]) # list2.append(7, 8) #这个会报错,只能追加单个元素的方法 print(list2) # 输出结果:[1, 2, 3, [4, 5, 6]]list2.extend(list1) # 追加其他数据容器 print(list2) # 输出结果:[1, 2, 3, [4, 5, 6], 'Hello', 'World', '!', '~']
# 通过指定下标来删除元素 list1 = ["Hello", "World", "!"] list2 = [1, 2, 3]del list1[0] element = list2.pop(0) # 用element来接受删点的元素print(list1) # 输出结果:['World', '!'] print(list2) # 输出结果:[2, 3] print(element) # 输出结果:1# 通过指定元素来删除 list3 = [1, 1, 2, 3] list3.remove(1) print(list3) # 输出结果:[1, 2, 3]
# 清空列表 list3 = [1, 1, 2, 3] list3.clear() print(list3) # 输出结果:[]
# 统计元素1的个数 list3 = [1, 1, 2, 3] count = list3.count(1) print(count) # 输出结果:2
# 统计列表长度 print(len(list3)) # 输出结果:4
# 综合训练 list5 =[21, 25, 21, 23, 22, 20]list5.append(31) # 追加一个数字31到列表的尾部 list5.extend([29, 33, 30]) # 追加一个新列表[29,33,30]到列表的尾部 num1 = list5[0] # 取出第一个元素(应是:21) num2 = list5[-1] # 取出最后一个元素(应是:30) index = list5.index(31) # 查找元素31所在的位置print(f"追加一个数字31到列表的尾部后的list5是:{list5}") print(f"追加一个新列表[29,33,30]到列表的尾部后list5是:{list5}") print(f"取出的第一个元素是: {num1}") print(f"取出最后一个元素是: {num2}") print(f"元素31所在的位置是: {index}")""" 输出结果: 追加一个数字31到列表的尾部后的list5是:[21, 25, 21, 23, 22, 20, 31, 29, 33, 30] 追加一个新列表[29,33,30]到列表的尾部后list5是:[21, 25, 21, 23, 22, 20, 31, 29, 33, 30] 取出的第一个元素是: 21 取出最后一个元素是: 30 元素31所在的位置是: 6 """
2、1ist(列表)的遍历列表的遍历有两种:使用while循环,遍历列表的元素和使用for循环,遍历列表的元素。
while循环:
index = 0
while index < len(列表名):
元素 = 列表名[index]
其他处理……
index += 1 #最关键的一步,千万别忘记。
除了while:循环外,Python中还有另外一种循环形式:for循环。
对比while,for循环更加适合对列表等数据容器进行遍历。for 临时变量 in 数据容器:
对临时变量进行处理
for循环中,会把取出的变量赋值给临时变量
# 通过while来完成列表的遍历 list3 = [1, 1, 2, 3] print("列表的元素值是:", end=" ")index = 0 # 从0下标开始遍历 while index < len(list3):element = list3[index] # 取出index下标对应的元素print(element, end=" ")index += 1 # 千万别忘了这一点,循环的关键;python里不支持index++ # 输出结果:列表的元素值是: 1 1 2 3 print()# 通过for来完成列表的遍历 for element in list3:print(f"列表的元素有:{element}")list4 = [["Hello", 111, True], ['world', 222, False]] """ 输出结果: 列表的元素有:1 列表的元素有:1 列表的元素有:2 列表的元素有:3 """
两者之间比较:
while循环和for循环,都是循环语句,但细节不同:
·在循环控制上:
while循环可以自定循环条件,并自行控制
for循环不可以自定循环条件,只可以一个个从容器内取出数据
·在无限循环上:
while循环可以通过条件控制做到无限循环
for循环理论上不可以,因为被遍历的容器容量不是无限的
在使用场景上:
while循环适用于任何想要循环的场景
for循环适用于逾历数据容器的场景或简单的固定次数循环场景
相关文章:

Python数据容器——列表(list)
数据容器入门 Python中的数据容器: 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素 每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。 数据容器根据特点的不同,如:是否支持重复元…...

Linux CEF(Chromium Embedded Framework)源码下载编译详细记录
Linux CEF(Chromium Embedded Framework)源码下载编译 背景 由于CEF默认的二进制分发包不支持音视频播放,需要自行编译源码,将ffmpeg开关打开才能支持。这里介绍的是Linux平台下的CEF源码下载编译过程。 前置条件 下载的过程非…...

Adaptive AUTOSAR—— Communication Management 3.1
9 Communication Management 9.1 What is Communication Management? 通信管理是自适应平台架构中的一个功能集群。 作为一个功能集群,通信管理向应用程序提供了一个C++ API,实现了面向服务的通信。服务是一个由应用程序提供的功能单元,可以在运行时被另一个应用程序动态…...

VMnet0 桥接设置
VMnet0 一定要设置为你的硬件物理网卡,不能设置自动,不然后,网线一断,就再也连不上了。必须重启电脑才能连上,这个问题找了很久才找到。 下面有个hyper-V虚拟网卡,如果选自动的话,物理网卡一掉…...

Sublime Text 4 Build 4151 4152 发布及注册方法
Sublime Text 是一个商业代码编辑器。它原生支持许多编程语言和标记语言,用户可以通过插件来扩展它的功能,这些插件通常是由社区建立的,并以自由软件许可证的形式维护。为了方便插件,Sublime Text 有一个 Python API。 Sublime T…...

第八篇: K8S Prometheus Operator实现Ceph集群企业微信机器人告警
Prometheus Operator实现Ceph集群企业微信告警 实现方案 我们的k8s集群与ceph集群是部署在不同的服务器上,因此实现方案如下: (1) ceph集群开启mgr内置的exporter服务,用于获取ceph集群的metrics (2) k8s集群通过 Service Endponit Ser…...

软件单元测试
单元测试目的和意义 对于非正式的软件(其特点是功能比较少,后续也不有新特性加入,不用负责维护),我们可以使用debug单步执行,内存修改,检查对应的观测点是否符合要求来进行单元测试,…...

Redis | 集群模式
Redis | 集群模式 随着互联网应用规模的不断扩大,单一节点的数据库性能已经无法满足大规模应用的需求。为了提高数据库的性能和可扩展性,分布式数据库成为了解决方案之一。Redis 作为一个高性能的内存数据库,自然也有了自己的分布式部署方式…...

8.3day04git+数据结构
文章目录 git版本控制学习高性能的单机管理主机的心跳服务算法题 git版本控制学习 一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码 作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容 安装g…...

04-5_Qt 5.9 C++开发指南_QComboBox和QPlainTextEdit
文章目录 1. 实例功能概述2. 源码2.1 可视化UI设计2.2 widget.h2.3 widget.cpp 1. 实例功能概述 QComboBox 是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个QLineEdit 用作输入。OComboBox 除了显示可见下拉列表外,每个…...

Sqlserver_Oracle_Mysql_Postgresql不同关系型数据库之主从延迟的理解和实验
关系型数据库主从节点的延迟是否和隔离级别有关联,个人认为两者没有直接关系,主从延迟在关系型数据库中一般和这两个时间有关:事务日志从主节点传输到从节点的时间事务日志在从节点的应用时间 事务日志从主节点传输到从节点的时间࿰…...

Clickhouse学习系列——一条SQL完成gourp by分组与不分组数值计算
笔者在近一两年接触了Clickhouse数据库,在项目中也进行了一些实践,但一直都没有一些技术文章的沉淀,近期打算做个系列,通过一些具体的场景将Clickhouse的用法进行沉淀和分享,供大家参考。 首先我们假设一个Clickhouse数…...

做好“关键基础设施提供商”角色,亚马逊云科技加快生成式AI落地
一场关于生产力的革命已在酝酿之中。全球管理咨询公司麦肯锡在最近的报告《生成式人工智能的经济潜力:下一波生产力浪潮》中指出,生成式AI每年可能为全球经济增加2.6万亿到4.4万亿美元的价值。在几天前的亚马逊云科技纽约峰会中,「生成式AI」…...

如何使用 ChatGPT 规划家居装修
你正在计划家庭装修项目,但不确定从哪里开始?ChatGPT 随时为你提供帮助。从集思广益的设计理念到估算成本,ChatGPT 可以简化你的家居装修规划流程。在本文中,我们将讨论如何使用 ChatGPT 有效地规划家居装修,以便你的项…...

题解 | #1002.Random Nim Game# 2023杭电暑期多校7
1002.Random Nim Game 诈骗博弈题 题目大意 Nim是一种双人数学策略游戏,玩家轮流从不同的堆中移除棋子。在每一轮游戏中,玩家必须至少取出一个棋子,并且可以取出任意数量的棋子,条件是这些棋子都来自同一个棋子堆。走最后一步棋…...

篇九:组合模式:树形结构的力量
篇九:“组合模式:树形结构的力量” 开始本篇文章之前先推荐一个好用的学习工具,AIRIght,借助于AI助手工具,学习事半功倍。欢迎访问:http://airight.fun/。 另外有2本不错的关于设计模式的资料,…...

【注册表】windows系统注册表常用修改方案
文章目录 ◆ 修改IE浏览器打印页面参数设置◆气泡屏幕保护◆彩带屏幕保护程序◆过滤IP(适用于WIN2000)◆禁止显示IE的地址栏◆禁止更改IE默认的检查(winnt适用)◆允许DHCP(winnt适用)◆局域网自动断开的时间(winnt适用)◆禁止使用“重置WEB设置”◆禁止更…...

ant-design-vue 4.x升级问题-样式丢失问题
[vue] ant-design-vue 4.x升级问题-样式丢失问题 项目环境问题场景解决方案 该文档是在升级ant-design-vue到4.x版本的时候遇到的问题 项目环境 "vue": "^3.3.4", "ant-design-vue": "^4.0.0", "vite": "^4.4.4&quo…...

【果树农药喷洒机器人】Part3:变量喷药系统工作原理介绍
本专栏介绍:免费专栏,持续更新机器人实战项目,欢迎各位订阅关注。 关注我,带你了解更多关于机器人、嵌入式、人工智能等方面的优质文章! 文章目录 一、变量喷药系统工作原理二、液压通路设计与控制系统封装2.1液压通路…...

GoogLeNet创新点总结
GoogLeNet是一种深度卷积神经网络架构,于2014年由Google团队提出,是ILSVRC(ImageNet Large Scale Visual Recognition Challenge)比赛的冠军模型,其创新点主要集中在以下几个方面: Inception模块&#…...

不同路径1、2、3合集(980. 不同路径 III)
不同路径一 矩形格,左上角 到 右下角。 class Solution {int [] directX new int[]{-1,1,0,0};int [] directY new int[]{0,0,-1,1};int rows;int cols;public int uniquePathsIII(int[][] grid) {if (grid null || grid.length 0 || grid[0].length 0) {ret…...

【云原生】Yaml文件详解
目录 一、YAML 语法格式1.1查看 api 资源版本标签1.2 写一个yaml文件demo1.3 详解k8s中的port 一、YAML 语法格式 Kubernetes 支持 YAML 和 JSON 格式管理资源对象JSON 格式:主要用于 api 接口之间消息的传递YAML格式:用于配置和管理,YAML 是…...

ffmpeg下载安装教程
ffmpeg官网下载地址https://ffmpeg.org/download.html 这里以windows为例,鼠标悬浮到windows图标上,再点击 Windows builds from gyan.dev 或者直接打开 https://www.gyan.dev/ffmpeg/builds/ 下载根据个人需要下载对应版本 解压下载的文件,并复制bin所在目录 新打开一个命令…...

uniapp之当你问起“tab方法触发时eventchange也跟着触发了咋办”时
我相信没有大佬会在这个问题上卡两个小时吧,记下来大家就当看个乐子了。 当时问题就是,点击tab头切换的时候,作为tab滑动事件的eventchange同时触发了,使得接口请求了两次 大概是没睡好,我当时脑子老想着怎么阻止它冒…...

TS 踩坑之路(四)之 Vue3
一、在使用定义默认值withDefaults和defineProps 组合时,默认值设置报错 代码案例 报错信息 不能将类型“{ isBackBtn: false; }”分配给类型“(props: PropsType) > RouteMsgType”。 对象字面量只能指定已知属性,并且“isBackBtn”不在类型“(pro…...

【音视频】edge与chrome在性能上的比较
目录 结论先说 实验 结论 实验机器的cpu配置 用EDGE拉九路编辑 google拉五路就拉不出来了 资源使用情况 edge报错编辑 如果服务器端 性能也满 了,就会不回复;验证方式 手动敲 8081,不回应。 结论先说 实验 用chrome先拉九路&#…...

Docker Compose编排部署LNMP服务
目录 安装docker-ce 阿里云镜像加速器 文件 启动 安装docker-ce [rootlocalhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo --2023-08-03 18:34:32-- http://mirrors.aliyun.com/repo/Centos-7.repo 正在解析主机 m…...

git使用(常见用法)
一.下载git git官方下载跳转 安装简单,有手就行 二. git的简单使用 1. 连接远程仓库 #初始化 git init #配置账户 git config --global user.name “输入你的用户名” git config --global user.email “输入你的邮箱” git config --list #--q退出 #配置验证邮箱 ssh-key…...

用例拆分情况考虑方案
文章目录 1、方案一方案概述方案分析(1) 把对应图商地图的逻辑给分离开(2) 要使用命令行的方式执行方法 2、方案二3、最终决定 1、方案一 方案概述 每个图商(GD、BD、自建)拆分成单独的类 把参数化的几个图商类别拆分成对应的图商类,在每个类…...

一文搞懂IS-IS报文通用格式
报文格式 IS-IS报文是直接封装在数据链路层的帧结构中的。PDU可以分为两个部分,报文头和变长字段部分。其中头部又可分为通用头部和专用头部。对于所有PDU来说,通用报头都是相同的,但专用报头根据PDU类型不同而有所差别。 IS-IS的PDU有4种类…...