Python学习之路——数据容器部分【(序列)切片操作】

一、序列

        内容连续,有序,可使用下标索引的一类数据容器

        列表、元组和字符串均可以视为序列

二、序列切片

序列支持切片,即:列表、元组和字符串均支持切片操作

(一)切片

从一个序列中,取出一个子序列

(二)语法

序列 [ 起始下标: 结束下标: 步长 ]

表示在序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:

  • 起始下标表示从何处开始,可以留空(不填入参数),留空视作从头开始
  • 结束下标(不含)表示从何处结束,可以留空,留空视作截取到结尾
  • 步长表示,依次取元素的的间隔
    • 步长 1 表示,一个个取元素
    • 步长 2 表示,每次跳一个元素取
    • 步长 N 表示,每次跳过 N - 1 个元素取

(三)注意

此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)

(四)操作示例

def func01():# 先定义好序列# 列表my_list01 = [1, '、', 'Be', 'who', 'you', 'are', 'on', 'the', 'inside.']# 元组my_tuple01 = (2, '、', 'We', 'learn', 'from', 'our', 'mistakes.')# 字符串my_str01 = '3、You have to love yourself.'# 对list进行切片,从1开始,4结束,步长1my_list02 = my_list01[1: 5:]print(f'得到的新的容器内容为:{my_list02},类型为:{type(my_list02)}')# 对tuple进行切片,从头开始,到最后结束,步长1my_tuple02 = my_tuple01[::]  # my_tuple02 = my_tuple01[:] 也可以这么写print(f'得到的新的容器内容为:{my_tuple02},类型为:{type(my_tuple02)}')# 对str进行切片,从头开始,到最后结束,步长2my_str02 = my_str01[:: 2]print(f'得到的新的容器内容为:{my_str02},类型为:{type(my_str02)}')# 对str进行切片,从头开始,到最后结束,步长-1my_str03 = my_str01[:: -1]print(f'得到的新的容器内容为:{my_str03},类型为:{type(my_str03)}')# 对列表进行切片,从3开始,到1结束,步长-1my_list03 = my_list01[3: 1: -1]print(f'得到的新的容器内容为:{my_list03},类型为:{type(my_list03)}')# 对元组进行切片,从头开始,到尾结束,步长-2my_tuple03 = my_tuple01[:: -2]print(f'得到的新的容器内容为:{my_tuple03},类型为:{type(my_tuple03)}')

结果如下:

(五)练习案例

给定字符串
        。负倾华韶,少年是自我
                得到韶华

先将字符串进行定义赋值

my_str = '。负倾华韶,少年是自我'

1、方法一

word01 = my_str.index('韶')
word02 = my_str.index('华')
print(f'我得到的字符串为:{my_str[word01] + my_str[word02]}')

2、方法二

my_new_str = my_str[-7: -9: -1]  # 注意这个步长要为负数,因为你是从后往前取元素
print(f'我得到的新的字符串为:  {my_new_str}  , 数据类型为:{type(my_new_str)}')

3、方法三

my_str = my_str[-1::-1]
print(f'得到的新的数据容器内的数据为:{my_str}')
my_str = my_str[6: 8: 1]
print(f'新的内容为:{my_str}')

4、方法四

my_str02 = '。负倾华韶,少年是自我'
my_list = my_str02.split(',')
print(f'新的序列的内容为:{my_list}, 数据类型为:{type(my_str02)}')   # 得到的序列为列表
# 取到第一部分的内容
my_list = my_list[0]
print(f'取到的第一部分的内容为:{my_list}')
# 将其他的内容全部删除
my_str02 = my_list.replace('倾', '')
my_str02 = my_str02.replace('负', '')
my_str02 = my_str02.replace('。', '')
print(f'新的内容为:{my_str02}')
# 进行取反操作即可
my_str02 = my_str02[-1::-1]
print(f'得到的内容为:{my_str02}')

5、另外

还有很多种方法:

比如说:

  • 循环遍历,如果字符串内的某个值等于你想要取到的值,拿出来,之后进行拼接就好了
  • 等等等等,想出来的评论区可以进行讨论哦

下一节内容我想讲一下集合的内容,期待一下哦

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

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

相关文章

柱面,盘片,盘面,扇面,磁头,磁道,扇区,CHS地址,LAB地址

柱面,盘片,盘面,扇面,磁头,磁道,扇区,CHS地址,LAB地址1 CHS地址 CHS地址指的是柱面(Cylinder)、磁头(Head)、扇区(Secto…

2024年的诸多跨年演讲,为什么觉得像是鸡汤?

时光如白驹过隙匆匆而已,转瞬间已来到2024年。伴随着新的一年的到来,一些互联网大佬如罗振宇、吴晓波等纷纷直播演讲,分享各自的思考和感悟。值不值得听呢?为什么有时候觉得是鸡汤?这里分析下可能的原因。 罗振宇的“做…

【算法每日一练]-动态规划(保姆级教程 篇14) #三倍经验 #散步 #异或和 #抽奖概率

目录 今日知识点: 金字塔的正反dp两种方案,转移方程取决于dp的具体含义 取模实现循环走m步回到原点的方案 在统计上升子序列的时候使用最小结尾元素进行标记,一举两得 将亏本的概率转换各种情况的方案,然后统计亏本的情况的方…

独立看门狗与窗口看门狗

一、简介 STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产…

基于SpringBoot的在线考试系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把在线考试管理与现在网络相结合,利用java技术建设在线考试系统,实现在线考试的信息化管理。则对于进一步提高在线考试管理发展,丰富在线考试管理经验能起到不少的促进作用。 在线考试系统能够通…

P10 RV1126推流项目——ffmpeg输出参数初始化

前言 从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_C…

centos安装人大金仓数据库

1,人大金仓官网下载安装包 下载链接https://www.kingbase.com.cn/xzzx/index.htm 下载这个版本,数据库授权文件下载下面的这个 2,点击下载的软件版本,挂载iso 点击CDROM中运行setup.sh,用普通用户进行运行 sh setup.sh 一直点…

Oracle导出CSV文件

利用spool spool基本格式: spool 路径文件名 select col1||,||col2||,||col3||,||col4 from tablename; spool off spool常用的设置: set colsep ;    //域输出分隔符 set echo off;    //显示start启动的脚本中的每个sql命令,缺…

数论:数论分块

第一种情况:求 如果暴力算法是O(n)的复杂度,而整除分块则将复杂度减低到O() 对于这种情况有两条重要的性质: 1.分块的块数最多为: 2.第i个数所在块的右端点为: 只需要进行分类前缀和即可 int ans 0; for (int l 1, r; l …

GitHub项目推荐:IDE-3D

项目地址 GitHub - MrTornado24/IDE-3D: [SIGGRAPH Asia 2022] IDE-3D: Interactive Disentangled Editing For High-Resolution 3D-aware Portrait Synthesisx 项目简述 这是一个交互式的3D画图工具。无论是改图还是成图,都能使用。是一个很有意思的项目。 项目…

Linux-进程间通信_管道

项目场景: 须熟知文件管理和进程方面的基础知识 通过Xshell和VScode 相互进行远程开发,学习进程间通信的其中一种方式——管道。 问题描述 依照我们曾经所学的知识,我们仅仅只能在单个进程中进行数据的交互,但是在实际应用中&a…

【DevOps-03】Build阶段-Maven安装配置

一、简要说明 下载安装JDK8下载安装Maven二、复制准备一台虚拟机 1、VM虚拟复制克隆一台机器 2、启动刚克隆的虚拟机,修改IP地址 刚刚克隆的虚拟机 ,IP地址和原虚拟的IP地址是一样的,需要修改克隆后的虚拟机IP地址,以免IP地址冲突。 # 编辑修改IP地址 $ vi /etc/sysconfig…