python 03序列(列表和元组)

列表

1.创建

x=[1,2,3,4,5,6,7,8,9,10]
print(x)

或者是

y=['a','b','c','d','e','f','g','h']
print(y)

2.访问

(1)取出一个元素

x[0]  #取出第0号,即List里第一个元素

(2)取出多个连续元素

通过两个索引值实现,第一个索引是取出的第一个元素,第二个索引是剩下的第一个元素,也就是包含第一个,不包含第二个

x[0:1]  #相当于取出第一个元素 相当于x[0]  即:1
x[-3:]  #此处用到了简写,省略第二个索引,表示直到List最后一个元素
x[:3]  #取出从开始元素,到2号位置的元素
x[:] #取出全部元素

两个索引的差值是取出来的元素数
 切片时,包含开始索引元素,不包含结束索引元素
用负索引从列表的后端顺序取值
可以省略开头和结束元素,简写

(3)带步长取出元素

前面没有显式的给出步长,是因为默认的步长是1
即:x[0:10:1] 相当于 x[0:10]

正序取出

x[0:8:2]

逆序取出

从右向左提取元素,开始元素和结束元素也要是逆序,即开始元素在右、结束元素在左

x[8:3:-2] 
  • 前面的如x[-3:-1]本质上还是从左向右去 第一个元素索引值小于第二个元素索引值,因为步长是正1
  • 而这里的x[8:3:-1] [9,8,7,6,5] 取出来的元素结果是从右向左的,第一个元素索引值大于第二个元素索引值,因为步长是-1
  • 列表取出的元素顺序与索引正负无关,与步长的正负值有关

3.修改元素值

(1)单个元素赋值

a=[1,2,3,4,5]
a[2]=0
a

(2)一次赋值多个元素(替换)

4.删除元素

(1)根据索引

(2)有返回值

使用pop可实现一种常见的数据结构——栈(stack)。
栈就像一叠盘子,你可在上面添加盘子,还可从上面取走盘子。最后加入的盘子最先取走,这被为后进先出(LIFO)。
push和pop是大家普遍接受的两种栈操作(加入和取走)的名称。Python没有提供push,但可使用append来替代。
方法pop和append的效果相反,因此将刚弹出的值压入(或附加)后,得到的栈将与原来相同。

push和pop是大家普遍接受的两种栈操作(加入和取走)的名称。
Python没有提供push,但可使用append来替代。
方法pop和append的效果相反,因此将刚弹出的值压入(或附加)后,得到的栈将与原来相同。

(3)删除为指定值的元素

5.插入元素

(1)末尾追加

x=[1,2,3]
x.append(4)  # 追加元素
x

x=[1,2,3]
y=[4,5]
x.extend(y)  #追加序列
x

不管是追加元素还是序列,序列x本身发生改变,这也就是为什么后面会有copy函数的原因。
数组名表示的是指向内存的指针,List也是一样,List的名字只是数组本身的一个名字而已 使用拼接(拼接后生成新List,xy不变,且只能拼接同数据类型的List)

x=[1,2,3]
y=x       #x,y 都是指向数组内存的指针,也就是这个数组的名称,把x赋给y后,x,y指向相同的List,因此,x,y代表相同的数组
del x[1]  #如果要实现类似 变量赋值的操作,就得用copy函数,建立副本,这就是存在copy函数的原因 
y
a=[1,2,3]
b=[4,5]
a[len(a):]=b  #切片虽然可行,但可读性不是很高,比起直接用extend函数,繁琐了很多,赋值的切片必须是List类型
a

(2)中间插入

6.清空列表

x=[1,2,3]
x.clear()  #相当于x[:]=[]
x

7.复制列表

前面说过,使用赋值符号进行赋值,只是将一个名称关联到这个列表,如果想要达到变量赋值的效果,就要使用copy方法
对比一下两种结果:

8.成员资格(判定特定值是否包含在序列中)

9.计算指定的元素在列表中出现了多少次

10.查找指定值第一次出现的索引

11.逆序排列元素

12.元素排序

13.高级排序

方法sort接受两个可选参数:key和reverse。这两个参数通常是按名称指定的,称为关键字 参数。参数key类似于参数cmp:你将其设置为一个用于排序的函数。然而, 不会直接使用这个函数来判断一个元素是否比另一个元素小,而是使用它来为每个元素创建一个 键,再根据这些键对元素进行排序。因此,要根据长度对元素进行排序,可将参数key设置为函数len。

元组

与列表一样,元组也是序列,唯一的差别在于元组是不能修改的

创建

值得注意的是:
为何要熟悉元组呢?原因有以下两个。
它们用作映射中的键(以及集合的成员),而列表不行
有些内置函数和方法返回元组,这意味着必须跟它们打交道。只要不尝试修改元组,与 元组“打交道”通常意味着像处理列表一样处理它们(需要使用元组没有的index和count 等方法时例外)。
一般而言,使用列表足以满足对序列的需求。

序列常用函数

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

专题【双指针】【学习题】刷题日记

题目列表 11. 盛最多水的容器 42. 接雨水 15. 三数之和 16. 最接近的三数之和 18. 四数之和 26. 删除有序数组中的重复项 27. 移除元素 75. 颜色分类 167. 两数之和 II - 输入有序数组 2024.04.06 11. 盛最多水的容器 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂…

MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数

系列文章目录 前言 模型预测控制器使用线性工厂、干扰和噪声模型来估计控制器状态并预测未来的工厂输出。控制器利用预测的设备输出,解决二次规划优化问题,以确定控制动作。 有关模型预测控制器结构的更多信息,请参阅 MPC 预测模型。 一、语法…

SpringMVC--概述 / 入门

目录 1. SpringMVC简介 2. 配置&入门 2.1. 开发环境 2.2. 创建maven工程 2.3. 手动创建 web.xml 2.4. 配置web.xml 2.4.1. 默认配置方式 2.4.2. 扩展配置方式 2.5. 创建请求控制器 2.6. 创建springMVC的配置文件 2.7. 测试 HelloWorld 2.7.1. 实现对首页的访问…

OJ在线比赛系统(人员管理、赛题发布、在线提交、题目审核、成绩录入)

系统功能设计 技术栈:springboot,jdk8,vue3,element-plus,mybatis-plus 1.java后端系统 首先需要学生通过前端注册页面和java后端系统将个人信息写入数据库,包含学号、姓名、班级以及需要爬取网站的相关信息(例如AtCoder账号信…

智谱清言 HTTP调用 + postman使用

官方教程 接口鉴权 非SDK用户鉴权 官方网站 第一步 获取您的 API Key 第二步 使用 JWT 组装 用户端需引入对应 JWT 相关工具类,并按以下方式组装 JWT 中 header、payload 部分 1、header 具体示例 {“alg”:“HS256”,“sign_type”:“SIGN”} alg : 属性表…

批量导入svg文件作为图标使用(vue3)vite-plugin-svg-icons插件的具体应用

目录 需求svg使用简述插件使用简述实现安装插件1、配置vite.config.ts2、src/main.ts引入注册脚本3、写个icon组件4、使用组件 需求 在vue3项目中,需要批量导入某个文件夹内数量不确定的svg文件用来作为图标,开发完成后能够通过增减文件夹内的svg文件&a…

ICLR 2024 | 联邦学习后门攻击的模型关键层

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 联邦学习使多个参与方可以在数据隐私得到保护的情况下训练机器学习模型。但是由于服务器无法…

论文阅读——MVDiffusion

MVDiffusion: Enabling Holistic Multi-view Image Generation with Correspondence-Aware Diffusion 文生图模型 用于根据给定像素到像素对应关系的文本提示生成一致的多视图图像。 MVDiffusion 会在给定任意每个视图文本的情况下合成高分辨率真实感全景图像,或将…

亚信安慧AntDB:开启数据洞察的新视野

AntDB一直秉承着“技术生态”的理念,不断进行技术创新和功能增强,以保持与先进数据库系统的竞争力。作为一款致力于提升数据库处理性能和稳定性的系统,AntDB在技术上始终保持敏锐的洞察力,不断汲取国内外先进技术的精华&#xff0…

Scala大数据开发

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Scala简述 在此,简要介绍 Scala 的基本信息和情况。 Scala释义 Scala 源自于英语单词scalable,表示可伸缩的、可扩展的含义。 Scala作者 Scala编…

tomcat 结构目录

bin 启动,关闭和其他脚本。这些 .sh文件(对于Unix系统)是这些.bat文件的功能副本(对于Windows系统)。由于Win32命令行缺少某些功能,因此此处包含一些其他文件。比如说:windows下启动tomcat用的是…

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v9.0版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp,服务端基于Netty编写。 工程…

如何不编程用 ChatGPT 爬取网站数据?

敢于大胆设想,才能在 AI 时代提出好问题。 需求 很多小伙伴,都需要为研究获取数据。从网上爬取数据,是其中关键一环。以往,这都需要编程来实现。 可最近,一位星友在知识星球提问: 这里涉及到一些个人隐私&a…

【VMware Workstation】启动虚拟机报错“此主机支持 AMD-V,但 AMD-V 处于禁用状态”

问题出现步骤: 打开虚拟机: 然后报错: “此主机支持 AMD-V,但 AMD-V 处于禁用状态。 如果已在 BIOS/固件设置中禁用 AMD-V,或主机自更改此设置后从未重新启动,则 AMD-V 可能被禁用。 (1) 确认 BIOS/固件设…

吴恩达2022机器学习专项课程(一) 第二周课程实验:多元线性回归(Lab_02)

1.训练集 使用Numpy数组存储数据集。 2.打印数组 打印两个数组的形状和数据。 3.初始化w,b 为了演示,w,b预设出接近最优解的值。w是一个一维数组,w个数对应特征个数。 4.非向量化计算多元线性回归函数 使用for循环&…

泰迪·南通师范大数据智能工作室挂牌签约仪式圆满结束

为促进毕业生高质量就业,拓宽就业渠道,加强校企合作,4月2日,泰迪智能科技股份有限公司上海分公司总经理彭艳昆一行来校出席南通师范高等专科学校“泰迪科技南通师范大数据智能工作室”签约揭牌仪式。学校党委副书记陈玉君、科技处…

LabVIEW数控磨床振动分析及监控系统

LabVIEW数控磨床振动分析及监控系统 在现代精密加工中,数控磨床作为关键设备之一,其加工质量直接影响到产品的精度与性能。然而,磨削过程中的振动是影响加工质量的主要因素之一,不仅会导致工件表面质量下降,还可能缩短…

41.基于SpringBoot + Vue实现的前后端分离-校园网上店铺管理系统(项目 + 论文PPT)

项目介绍 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。本课题研究和开发校园网上店铺,让安装在计算机上的该系统变成管理人员的小帮手,提高校园店铺商品销售信息处…

Open3D (C++) 计算点云的特征值特征向量

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 针对整个点云 P = { p i } i

RabbitMQ3.13.x之六_RabbitMQ使用场景

RabbitMQ3.13.x之六_RabbitMQ使用场景 文章目录 RabbitMQ3.13.x之六_RabbitMQ使用场景1. 为什么选择 RabbitMQ?1. 可互操作2. 灵活3. 可靠 2. 常见用户案例1. 服务解耦2. 远程过程调用3. 流处理4. 物联网 1. 为什么选择 RabbitMQ? RabbitMQ 是一个可靠且…