字符串的截取

字符串的截取是实际应用中经常使用的技术,被截取的部分称为“子串”。Java中使用函数substr()获取子串,C#使用函数substring()获取子串。而Python由于内置了序列,可以通过前面介绍的索引、切片获取子串,也可以使用函数split()来获取。字符串也属于序列。

下面这段代码使用序列的索引获取子串:

# 使用索引截取子串

print('----------# 使用索引截取子串---------')

word = 'world'

print(word[4])

【代码说明】第4行代码,访问字符串第5个字符的值。输出结果为“d”。

【运行结果】

通过切片可以实现对字符串有规律的截取。切片的语法格式如下所示。

string[start : end : step]

【代码说明】其中string表示需要取子串的源字符串变量。[start:end:step]表示从string的第start个索引位置开始到第end个索引之间截取子串,截取的步长是step。即每次截取字符string[start+step],直到第end个索引。索引从0开始计数。

下面这段代码演示了使用切片截取子串的功能:

# 特殊切片截取子串

print('---------# 特殊切片截取子串----------')

str1 = 'hello world'

print(str1[0:3])

print(str1[::2])

print(str1[1::2])

str2 = 'ABCDEFG'

print(str2[:3])

print(str2[3:])

print(str2[::2])

print('-----------------------------------')

【代码说明】

第10行代码,截取字符串中第1个字符到第3个字符之间的部分。

第11行代码,[::2]切片省略了开始和结束字符。从字符串的第1个字符开始,以2为步长逐个截取字符。

第12行代码,切片中的数字1表示从字符串的第2个字符开始取字符,数字2表示以2为步长逐个截取字符。

【运行结果】

如果要同时截取多个子串,可以使用函数split()实现。函数split()的声明如下所示。

split([char] [,num])

【代码说明】

参数char表示用于分割的字符,默认的分割字符是空格。

参数num表示分割的次数。如果num等于2,将把源字符串分割为3个子串。默认情况下,将根据字符char在字符串中出现的个数来分割子串。

函数的返回值是由子串组成的列表。

代码如下:

# 使用split()获取子串

print('-----------# 使用split()获取子串-----')

sentence = "Tom said: a,b,c,d."

print('使用空格获取子串:', sentence.split())

print('使用逗号获取子串:', sentence.split(','))

print('使用逗号获取3个子串:', sentence.split(',', 2))

sentence1 = 'Uzi tell us : he is king and said : A, B, C, D.'

print('使用空格获取子串:', sentence1.split())

print('使用逗号获取子串:', sentence1.split(','))

print('使用空格获取4个子串:', sentence1.split(' ',3))

print('-----------------------------------')

【代码说明】

第22行代码根据空格来获取子串。字符串sentence中有5个空格,将返回由6个子串组成的列表。

第23行代码根据逗号来获取子串。字符串sentence中有3个空格,将返回由4个子串组成的列表。

第24行代码根据逗号来分割字符串,并把字符串sentence分割为3个子串。

【运行结果】

字符串连接后,Python将分配新的空间给连接后的字符串,源字符串保持不变。

# 字符串连接后,Python将分配新的空间给连接后的字符串,源字符串保持不变。

print('字符串连接后,Python将分配新的空间给连接后的字符串,源字符串保持不变。')

str3 = "a"

print(id(str3))

print(id(str3 + "b"))

print('-------------------------------------')

【代码说明】

第2行代码输出str1的内部标识。输出结果为“4337916312”。

第3行代码,进行字符串连接,新的字符串将获得新的标识。输出结果为“4337800168”。

【运行结果】

ALL:

运行结果ALL:

-------------------end--------------------

Python 字符串操作之字符串的截取相关推荐

  1. python字符串操作_Python 字符串操作 - 树懒学堂

    字符串操作 由于Python在字符串和文本操作上的便利性,使Python成为一个流行的原生数据集操作语言已经有很长时间了.字符串对象的内建方法使得大部分文本操作非常简单.对于更为复杂的模式匹配和文本操 ...

  2. Python(IT峰)笔记05-数据类型详解:字符串、转义字符,字符串操作,字符串格式化,英文字符,字符串查找,字符串操作

    1.字符串的定义 单引号 双引号 三引号 字符串定义时,引号可以相互嵌套 2.转义字符 斜杠\转义符,续行符.转义符可转义,在末尾可续行 strs='hello'\'wolrd' print(strs ...

  3. python字符串操作_python字符串操作

    6.1 处理字符串 原始字符串:在字符串开始的引号之前加上r,使它成为原始字符串."原始字符串"完全忽略所有的转义字符,打印出字符串中的所有倒斜杠. 用三重引号的多行字符串:多行字 ...

  4. 【牛客】1. 字符串操作 <字符串>

    腾讯音乐娱乐集团2023校园招聘技术类岗位编程题一 1.字符串操作 给定一个只包含小写字母字符串,每次可以选择两个相同的字符删除,并在字符串结尾新增任意一个小写字母.请问最少多少次操作后,所有的字母都 ...

  5. 【C 语言】字符串操作 ( C 字符串 | 字符数组始化 )

    文章目录 一.C 字符串 二.字符数组始化 一.C 字符串 C 字符串特征 : C 语言中的字符串都是以 '\0'字符 结尾的 字符数组 ; C 字符串本质 : C 中 没有字符串类型 , 都是使用 ...

  6. php的字符串操作,PHP 字符串操作

    关于PHP字符串的操作函数 代码如下: //addcslashes() 在字符 "A" 之前添加一个反斜杠 $a = "abcdefg"; $value = a ...

  7. 字符串操作之字符串连接

    /* 将str1与str2连接-->(将合成的字符串放入str1中) 思路分析: a. 确定str1的内存大小是否小于str1+str2-1; b. 连接; c. 连接后的字符串最后一个为空字符 ...

  8. 字符串操作之字符串拷贝功能实现

    #include<iostream> using namespace std; //思路分析: //a.确定被拷贝的数组内存是否小于等于目标数组的内存大小 //b.拷贝数组 //c.目标数 ...

  9. python字符串用空格切片_Python切片操作去除字符串首尾的空格

    下面通过实例代码给大家分享Python切片操作去除字符串首尾的空格的方法,具体内容如下所示: #利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法 d ...

最新文章

  1. linux 内核按键抖动,Tiny4412 Linux驱动之按键(定时器防抖动) | 技术部落
  2. 3.1.4 如何使深度学习模型达到人类水平以及超高人类水平
  3. 反病毒引擎设计全解(四)
  4. linux生成公钥实现ssh,linux下生成 SSH 公钥,用于GitHub
  5. GraphSAGE节点分类
  6. Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构
  7. java版数据结构解迷宫问题_C语言数据结构之迷宫问题
  8. 为什么早上和傍晚的太阳总是红色,而中午的大阳却是黄白色?
  9. Vuex 源码还有一些缺陷?
  10. 入门 | 使用 SQL 构建一个关系数据库比你想的更容易
  11. 为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
  12. 虚拟主机金华php空间,金华虚拟主机_金华云虚机_金华主机申请_金华网站空间_爱名网(www.22.cn)...
  13. mark制图软件_绘图软件有哪些?
  14. 单片机初始化WIFI模块
  15. 您的组织策略阻止我们为您完成此操作
  16. 【Python打卡2019】20190421之52周存钱挑战
  17. ubuntu 日常使用问题记录
  18. 一文带你读懂点击劫持详解+实验
  19. 基金从业考试考前必背
  20. lock-step技术

热门文章

  1. OceanBase CTO杨传辉:放手去干,这行没有35岁危机
  2. 联想微型计算机c5030拆机,联想C5030一体电脑配置单
  3. 黑苹果社区近期打不开做出回应
  4. 使用手机作为虚拟摄像头
  5. ConcurrentHashMap的红黑树
  6. 几个有名的 ACM oj
  7. 2020 RTOS推荐
  8. 利用企微私域SCRM平台,拥抱精准再营销
  9. SAP ABAP WS_DELIVERY_UPDATE 更新拣配数量并发货过账
  10. Java 不死神兔案例