如何用Python字符串进行切片操作?

news2024/9/28 17:26:21

嗨害大家好鸭!我是小熊猫~

我们基本上都知道Python的序列对象

都是可以用索引号来引用的元素的,

索引号可以是正数由0开始从左向右,

也可以是负数由-1开始从右向左。

在Python中对于具有序列结构的数据来说都可以使用切片操作,

需注意的是序列对象某个索引位置返回的是一个元素,

而切片操作返回是和被切片对象相同类型对象的副本。

今天练习Python主要与大家一起谈谈Python字符串切片操作的那些事。


请添加图片描述

一、字符串的切片

字符串 'xxx’和 Unicode字符串 u’xxx’也可以看成是一种list,

每个元素就是一个字符。

因此,字符串也可以用切片操作,

只是操作结果仍是字符串。

在很多编程语言中,

针对字符串提供了很多各种截取函数,

其实目的就是对字符串切片。

Python没有针对字符串的截取函数,

只需要切片一个操作就可以完成,非常简单。

切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。

我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。

格式: [start🔚step]

[:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串

[start:] 从start 提取到结尾

[:end] 从开头提取到end - 1

[start:end] 从start 提取到end - 1

[start🔚step] 从start 提取到end - 1,每step 个字符提取一个

左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1

二、实战

任务:

请设计一个函数,它接受一个字符串,

然后返回一个仅首字母变成大写的字符串。

提示:利用切片操作简化字符串操作。

字符串有个方法 upper() 可以把字符变成大写字母,

但它会把所有字母都变成大写。

print("abc".upper())
 
#输出
 
ABC

而我们只想让字符串的首字母变大写,

因此可以通过使用字符串的切片操作来实现,

代码如下:

'''
def firstCharUpper(s):
    return s[0].upper() + s[1:]
print(firstCharUpper('hello'))
 
#输出
Hello

习题:实现strStr() By Python

给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

示例 1:

输入:haystack = “hello”, needle = "ll"输出:2

示例 2:

输入:haystack = “aaaaa”, needle = "bba"输出:-1

关键思维:
需要从haystack 字符串截取一个完整的 needle 字符串,

自然而然想到字符串的切片方法

class Solution(object):
    def strStr(self, haystack,needle):
        """
        :type haystack: str
        :type needle: str
        :rtype: int
        """
        if not needle:
            return 0
 
        h_h = len(haystack)
        h_n = len(needle)
 
        if h_h < h_n:
            return -1
        for i in range(h_h - h_n + 1):
            if haystack[i:i+h_n] == needle:
                return i
        return -1

除了字符串的切片操作,还有哪些方法,欢迎大家留言讨论

我是小熊猫,咱下篇文章再见啦(✿◡‿◡)

请添加图片描述

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

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

相关文章

【C++升级之路】第五篇:C/C++内存管理(new和delete的实现原理)

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【C学习与应用】 ✒️✒️本篇内容&#xff1a;C/C内存分布&#xff0c;C/C动态内存管理方法&#xff0c;C动态内存管理方法底层函数operator new 和operat…

浅谈树状数组

学习树状数组必不可少学习树状数组的精髓&#xff0c;lowbit()运算 在计算机中存储一个正数是以二进制的形式&#xff0c;而存储一个负数则是以二进制补码的形式&#xff0c;简单说就是二进制取反1&#xff0c;lowbit运算就是提取出最后一个1以后的位置&#xff0c;比如10100进…

【C语言】结构体、共用体、位域

结构体 1、 结构体的声明方法 struct struct_name {data_type member1;data_type member2;.. };这是其中一种声明方式~ 2、定义一个结构体变量 struct struct_name variable&#xff1b;3、访问成员变量 . 运算 一个结构体变量访问其成员时&#xff0c;使用的是 . 运算 下面…

BM35 判断是不是完全二叉树

题目 给定一个二叉树&#xff0c;确定他是否是一个完全二叉树。 完全二叉树的定义&#xff1a;若二叉树的深度为 h&#xff0c;除第 h 层外&#xff0c;其它各层的结点数都达到最大个数&#xff0c;第 h 层所有的叶子结点都连续集中在最左边&#xff0c;这就是完全二叉树。&a…

深入理解ConcurrentHashMap1.7源码

1. 概述 HashMap在我们的日常生活中使用很多&#xff0c;但是它不是线程安全的。我们可以使用HashTable来代替&#xff0c;主要实现方式是在方法中加入synchronized&#xff0c;所以效率也比较低。因此&#xff0c;对于键值对&#xff0c;我们可以尝试使用ConcurrentHashMap来…

实验室规划设计方案SICOLAB

一、实验室规划设计 喜格提供实验室布局方案 根据实验室性质、实验室定位、实验室功能、实验类型、实验工艺流程以及国家相关标准合理的规划布局。 喜格提供仪器摆放布局方案 根据该实验流程来确定仪器的种类、数量、规格型号、外形尺寸、电压功率等参数以及摆放位置以及提…

【Linux】tee、tail、killall、|、||、、命令学习

|、||、&、&&辨析 竖线‘|’在linux中是管道符的意思&#xff0c;将‘|’前面命令的输出作为’|后面的输入&#xff1b; 双竖线‘||’&#xff0c;用双竖线‘||’分割的多条命令&#xff0c;执行的时候遵循如下规则&#xff1a;如果前一条命令为真&#xff0c;则…

还在喷农民歌唱家大衣哥吗?他的一个不经意间的举动却造福了乡里

农民歌唱家大衣哥&#xff0c;一直以来都饱受争议&#xff0c;有人说他是炒货专家&#xff0c;然而事实真的如此吗&#xff1f;事实上&#xff0c;大衣哥也做了很多好事&#xff0c;像修桥补路等都不说了&#xff0c;单就他的一个不经意间的举动&#xff0c;就造福了四乡八邻。…

Windows内核--CPU和内核(1.7)

Windows内核支援哪些CPU? Intel x86/x86_64 IA64已不再支持. AMD amd64 ARM (Windows On Arm: WOA) ARM具备低功耗优势, 除了高通, 还有Broadcom/NXP等都支援ARM架构. 苹果自研M系列开了头&#xff0c;ARM不仅有低功耗&#xff0c;同样有性能&#xff0c;Windows也想分一杯羹…

【vue系列-03】vue的计算属性,列表,监视属性及原理

vue的核心属性一&#xff0c;vue核心属性1&#xff0c;计算属性2&#xff0c;监视属性3&#xff0c;样式绑定3.1&#xff0c;class样式绑定3.2&#xff0c;style样式绑定4&#xff0c;条件渲染5&#xff0c;列表渲染5.1&#xff0c;遍历列表5.2&#xff0c;key的作用5.3&#x…

2022年全国职业院校技能大赛中职组网络安全竞赛——隐写术应用解析(超详细)

2022年全国职业院校技能大赛中职组网络安全竞赛——隐写术应用解析(超详细) B-8任务八:隐写术应用 *任务说明:仅能获取Server8的IP地址 环境需求私信博主 1.找出文件夹1中的文件,将文件中的隐藏信息作为Flag值提交; 解题步骤如下 2.找出文件夹2中的文件,将文件中的隐藏信息…

基于Vue的数据可视化设计框架,数据大屏可视化编辑器

开发文档&#xff08;★★★★★&#xff09; 请访问 https://lizhensheng.github.io/vue-data-view/ 完整代码下载地址&#xff1a;基于Vue的数据可视化设计框架&#xff0c;数据大屏可视化编辑器 简介 DataView是一个基于Vue的数据可视化设计框架提供用于可拖拽的控件提供…

Spring之IOC入门案例

目录 一&#xff1a;IOC入门案例实现思路分析 1.IOC容器管理什么&#xff1f; 2. 如何将被管理的对象告知 IOC 容器 ? 3.被管理的对象交给 IOC 容器&#xff0c;要想从容器中获取对象&#xff0c;就先得思考如何获取到 IOC 容器 ? 4.IOC 容器得到后&#xff0c;如何从容…

C++首超Java

TIOBE 公布了 2022 年 12 月的编程语言排行榜。 TIOBE 将于下个月揭晓其 2022 年度编程语言&#xff0c;目前共有 3 个候选者&#xff1a;Python、C 和 C。TIOBE CEO Paul Jansen 指出&#xff0c;虽然 Python 和 C 已多次斩获该头衔&#xff0c;而 C 仅在 2003 年获得过一次&a…

Android---开发笔记

ListView控件 <ListViewandroid:id"id/main_iv"android:layout_width"match_parent"android:layout_height"match_parent"android:layout_below"id/main_top_layout"android:padding"10dp"android:divider"null&qu…

彩色圣诞树圣诞树

目录 一、圣诞介绍 二、技术需要 三、效果展示 四、实现步骤 五、颜色的更改 六、源码 一、圣诞介绍 基督教纪念耶稣诞生的重要节日。亦称耶稣圣诞节、主降生节&#xff0c;天主教亦称耶稣圣诞瞻礼。耶稣诞生的日期&#xff0c;《圣经》并无记载。公元336年罗马教会开始在…

JavaScript对象与类的创建

1、面向过程与面向对象 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候再一个一个的依次调用就可以了。面向对象是把事务分解成为一个个对象&#xff0c;然后由对象之间分工与合作。 面向过程与面向对象对比 面…

LeetCode11.盛水最多的容器

11. 盛最多水的容器 该题用的是贪心的思想&#xff0c;也即每一步都以更加靠近最值为目标&#xff0c;用双指针维护height数组&#xff0c;接下来我用我自己通俗的语言尽可能解释双指针这种做法的正确性&#xff1a; 首先双指针指向数组两端&#xff0c;从两端开始&#xff0…

必看!Salesforce发布2023年全球科技重要趋势和预测

Salesforce领导者处于影响企业的最新趋势、技术和挑战的前线&#xff0c;通过市场分析、客户对话等方面带来专业知识和洞察力。距离2023年还剩不到一周的时间&#xff0c;未来一年企业应该如何布局&#xff0c;技术会如何发展&#xff0c;值得我们密切关注。 企业需要了解的5项…

IB分数如何影响您的大学申请?

参加 2022 年 11 月 IB 考试的学生将于 1 月 2 日收到IBDP&IBDP相关课程的分数。 大多数在新加坡提供 IB 课程的国际学校都在每年 5 月参加考试。 但是有些学校在 11 月参加 IBDP 考试。其中包括圣约瑟国际学院(SJII)、英华学校(ACS)、澳大利亚国际学校(SAIS)、华中国际学校…