python 之切片

news2024/12/24 22:00:02

文章目录

      • 基本切片语法
      • 负索引
      • step 为负
      • 使用负数的 Step
        • 从右向左提取
        • 间隔提取
      • 注意事项
      • 切片的应用
      • 切片运用到字符串、元组、range对象
      • 字符串切片
        • 基本字符串切片
        • 使用步长进行操作
      • 元组切片
        • 基本元组切片
        • 使用步长进行操作
      • `range` 对象切片
        • 基本 range 切片
        • 使用步长进行操作

在这里插入图片描述

在 Python 中,切片(Slicing)是一种从序列中获取子序列的方法。序列可以是列表、字符串、元组等,它允许你获取序列的一部分,创建一个新的序列。切片的基本语法是 seq[start:stop:step]

基本切片语法

  • start:切片的起始位置(默认为序列的开头)。
  • stop:切片的结束位置(默认为序列的结尾)。
  • step:切片的步长(默认为 1)。
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 从索引 2 开始,到索引 5(不包括)为止,步长为 1
slice_1 = my_list[2:5]
print(slice_1)  # 输出: [2, 3, 4]

# 从索引 0 开始,到索引 7(不包括)为止,步长为 2
slice_2 = my_list[0:7:2]
print(slice_2)  # 输出: [0, 2, 4, 6]

# 默认情况下,省略 start 或 stop 将分别从序列的开头或结尾开始切片
slice_start = my_list[:4]  # 从索引 0 到 4(不包括)
slice_end = my_list[6:]  # 从索引 6 开始直到末尾
print(slice_start)  # 输出: [0, 1, 2, 3]
print(slice_end)  # 输出: [6, 7, 8, 9]

负索引

切片还支持使用负数索引,表示从序列末尾开始计数。
注意:列表中最后一个元素的负索引为-1

my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 从索引 -5 开始,到末尾为止
slice_negative = my_list[-5:]
print(slice_negative)  # 输出: [5, 6, 7, 8, 9]
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

x = my_list[-3:-1:1]
print(x)
#输出 [7,8]

step 为负

在 Python 中,切片操作中的 step 参数允许您指定步长,决定取值的方向和间隔。当 step 参数为负数时,切片会从右向左提取元素。

基本的切片语法是 seq[start:stop:step]

使用负数的 Step

从右向左提取
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 从右向左提取,步长为 -1
reversed_list = my_list[::-1]
print(reversed_list)  # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
间隔提取
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 从右向左每隔一个元素提取
every_other = my_list[::-2]
print(every_other)  # 输出: [9, 7, 5, 3, 1]

注意事项

  • step 为负数时,start 参数需要大于 stop 参数。否则,将得到一个空列表。
  • 也就是[end : start : -n]
  • 使用负数步长的情况下,要注意确保正确的起始位置和结束位置,否则可能会得到意想不到的结果。
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 错误的使用方式,会得到空列表
incorrect_slice = my_list[2:7:-1]
print(incorrect_slice)  # 输出: []
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
slice = my_list[7:2:-1]
print(slice)
#输出[7,6,5,4,3]

负数的步长用于反向迭代列表或其他序列,也可以用于快速地反转列表内容。使用适当的起始和结束索引,负数的步长可以提供灵活的选择元素的方式。

切片的应用

切片可用于快速获取列表、字符串或其他序列的子集,并支持在循环中进行迭代、复制或反转等操作。

text = "Hello, World!"

# 使用切片进行反转
reverse_text = text[::-1]
print(reverse_text)  # 输出: "!dlroW ,olleH"

切片是 Python 中非常强大和灵活的特性,允许对序列进行各种操作,提取所需的子集,并对序列进行快速操作。

切片运用到字符串、元组、range对象

当应用切片操作于字符串、元组和 range 对象时,与列表切片类似,可以轻松获取这些序列的子集或执行特定的操作。下面将详细介绍在这些不同类型上的切片运用。

字符串切片

基本字符串切片
my_string = "Hello, World!"

# 获取子字符串
substring = my_string[7:12]
print(substring)  # 输出: "World"
使用步长进行操作
my_string = "Hello, World!"

# 逆序字符串
reversed_string = my_string[::-1]
print(reversed_string)  # 输出: "!dlroW ,olleH"

元组切片

基本元组切片
my_tuple = (1, 2, 3, 4, 5)

# 获取子元组
subtuple = my_tuple[1:4]
print(subtuple)  # 输出: (2, 3, 4)
使用步长进行操作
my_tuple = (1, 2, 3, 4, 5)

# 逆序元组
reversed_tuple = my_tuple[::-1]
print(reversed_tuple)  # 输出: (5, 4, 3, 2, 1)

range 对象切片

range 对象是一个不可变的序列类型,也支持切片操作。

基本 range 切片
my_range = range(10)

# 获取子 range 对象
subrange = my_range[2:7]
print(list(subrange))  # 输出: [2, 3, 4, 5, 6]
使用步长进行操作
my_range = range(10)

# 逆序 range 对象
reversed_range = my_range[::-1]
print(list(reversed_range))  # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

切片操作对字符串、元组和 range 对象都是十分有用的,允许您获取子序列、逆序排列以及应用其他切片操作。这些操作对于各种情况下的数据处理和序列操作非常实用。

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

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

相关文章

SPSS两变量相关性分析

1.两变量相关性分析 两变量相关性分析是统计学中用于评估两个变量之间是否存在线性关系以及关系紧密程度的一种方法。相关性的大小通常使用相关系数来衡量,最常用的是皮尔逊相关系数(Pearson correlation coefficient),但还有斯皮…

简单讲讲RISC-V跳转指令基于具体场景的实现

背景 在 RISC-V指令集中&#xff0c;一共有 6 条有条件跳转指令&#xff0c;分别是 beq、bne、blt、bltu、bge、bgeu。如下是它们的定义与接口 BEQ rs1, rs2, imm ≠ BNE rs1, rs2, imm &#xff1c; BLT rs1, rs2, imm ≥ BGE rs1, rs2, imm < unsigned BLTU rs1…

Stable Diffusion源码调试(二)

Stable Diffusion源码调试&#xff08;二&#xff09; 个人模型主页&#xff1a;https://liblib.ai/userpage/369b11c9952245e28ea8d107ed9c2746/model Stable Diffusion版本&#xff1a;https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.4.1 分析S…

汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)

1 数据对象的创建 CtrlH打开Model Explorer&#xff0c;在Base workspace中点击工具栏add&#xff0c;出现如下界面&#xff0c; 可以看到Simulink提供了多种数据类型 Matlab Variable&#xff1a;Simulink.Parameter&#xff1a;使用该数据对象表示工程应用中的标定量Simuli…

python爬虫怎么翻页 ?

首先&#xff0c;你需要安装相关的库。在你的命令行窗口中&#xff0c;输入以下命令来安装所需的库&#xff1a; pip install requests beautifulsoup4然后&#xff0c;你可以使用以下代码来爬取网页内容并翻页&#xff1a; package mainimport ("fmt""net/htt…

DAY 12 结构体 共用体 枚举02

1.结构体 结构体对齐(了解) 概述 typedef struct Data01 { char a; int b; }Data01; typedef struct Data02 { char a; char b; }Data02; void fun01(){ printf("%ld\n",sizeof(Data01)); printf("%ld\n",sizeof(Data02)); } 特点&#xff…

QuantLib学习笔记——一个简单的价值估算案例

⭐️ 前言 QuantLib很强大&#xff0c;它实现了很多金融工具及其价值估算方法&#xff0c;从最简单的折现模型&#xff0c;到利用BSM模型对期权进行定价&#xff0c;覆盖面相当齐全。本文以一个简单的净现值估算案例&#xff0c;开启笔者金融工具估值的旅程。 开上豪车&#…

〔003〕虚幻 UE5 基础教程和蓝图入门

✨ 目录 &#x1f388; 新建项目&#x1f388; 快捷操作&#x1f388; 镜头移动速度&#x1f388; 新建蓝图关卡&#x1f388; 打印字符串&#x1f388; 蓝图的快捷键&#x1f388; 场景中放置物体&#x1f388; 通过蓝图改变物体位置&#x1f388; 展现物体运动轨迹&#x1f3…

泛微移动管理平台E-mobile lang2sql接口任意文件上传漏洞

一、漏洞描述 泛微e-mobile,由高端OA泛微专业研发,是业内领先的移动OA系统,提供移动审批,移动考勤,移动报表,企业微信等丰富办公应用,支持多种平台运行,灵活易用安全性高。 e-mobile可满足企业日常管理中的绝大部分管理需求&#xff0c; 诸如市场销售、项目、采购、研发、客服…

了解高防服务器的工作原理

在当今互联网时代&#xff0c;网络安全问题日益突出&#xff0c;各种网络攻击层出不穷。为了保护企业的网络安全&#xff0c;高防服务器应运而生。那么&#xff0c;你是否了解高防服务器的工作原理呢?下面就让我们一起来探索一下。 高防服务器是一种能够有效抵御各种网络攻击的…

“小众”与“竞争”:打造爆款新能源车型的两大方法

引言&#xff1a;在动荡的新能源汽车市场中,品牌如何从众多竞争者中脱颖而出,捕捉消费者的心呢?是否是从广袤的"主流"市场着手,还是从具有潜力的”小众"市场切入?或者,是否需要重新定义与既定的竞争者进行正面对抗的方式? 在新能源汽车翻涌的市场潮流中&…

利用浩客无代码开发API集成客服系统,提升用户服务质量

【浩客简介】 浩客&#xff0c;是由十年 SaaS 表单产品「金数据」团队打造的新产品。它主要面向数字化系统的用户评价、反馈、调研、通知工具&#xff0c;特定时机、精准触达&#xff0c;帮助产品经理、用研、UX、运营&#xff0c;聆听用户心声&#xff0c;增强用户触达&#…

【软件设计师 - 一周通关】1.考试介绍

目录 一、简介 考试项目 1、证书作用 &#xff08;1&#xff09;以考代评中高级职称 &#xff08;2&#xff09;一线城市人才引进落户 &#xff08;3&#xff09;就业优势 &#xff08;4&#xff09;个税抵扣 &#xff08;5&#xff09;技能补贴 2、含金量 3、报名时…

网络原理---拿捏传输层:TCP/UDP协议

文章目录 UDP协议源端口、目的端口UDP长度校验和 TCP协议源端口、目的端口4位首部长度、选项保留位&#xff1a;6位6个特殊标志位32位序号、32位确认序号&#xff1a;在确认应答机制中使用16位窗口大小&#xff1a;在流量控制机制中使用16位校验和 TCP协议 VS UDP协议 在本篇中…

C语言实现利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示

完整代码&#xff1a; /*利用条件运算符的嵌套来完成此题&#xff1a;学习成绩>90分的同学用A表示&#xff0c;60-89分之间 的用B表示&#xff0c;60分以下的用C表示*/ #include<stdio.h>int main(){int score;char grade;printf("请输入你的成绩&#xff1a;&q…

【无标题】360压缩软件怎么用?超级好用!

360压缩是一款功能强大的解压缩软件&#xff0c;如何用它压缩文件呢&#xff1f;下面给出了详细的操作步骤。 一、360压缩详细步骤 1、下载软件后&#xff0c;在电脑上右击需要压缩的文件&#xff0c;在弹出的菜单中点击【添加到压缩文件】选项。 2、在360压缩窗口中按需设置相…

建立企业知识库,构建智慧团队

企业知识库的建立对于企业来说非常重要。它可以提高知识的共享和传递&#xff0c;使得员工之间更容易分享和获取信息。通过知识库&#xff0c;员工可以快速找到所需的知识资源&#xff0c;从而增强培训和学习效果。此外&#xff0c;企业知识库还能提升工作效率和团队协作能力。…

实验室通风系统工程-全钢通风柜-实验室废气处理

通风设备&#xff1a; 实验室常用的通风设备主要有&#xff1a;通风柜、原子吸收罩、万向排气罩、桌面式通风罩等。通风柜是安全处理有害、有毒气体或蒸汽的通风设备&#xff0c;作用是用来捕捉、密封和转移污染物以及有害气体&#xff0c;防止其逃逸到实验室内&#xff0c;这…

制药企业如何进行计算机化系统验证(CSV)

在制药行业&#xff0c;计算机化系统验证&#xff08;CSV&#xff09;是确保生产、质量管理和合规要求得到满足的重要步骤。CSV验证确保计算机化系统的可靠性、一致性和合规性&#xff0c;以保护产品质量和患者安全。本文将深入探讨计算机化系统验证的定义、制药企业进行CSV的原…