python字符串切片及常用方法

2023-05-16

一、切片

切片:指对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片操作

语法:序列[开始位置下标:结束位置下标:步长] ,不包含结束位置下标数据,步长为选取间隔,正负均可,默认为1

举例如下:

str = 'abcdefg_a'
print(str[1:6:2], str[2:6], str[:3], str[3:], str[:])
print(str[::2], str[:-2], str[-6:-2], str[::-2], str[::-1])
print(str[-2:], str[2:-2], str[-2::-2], str[:-2:2], str[2:-2:2])

输出:
bdf cdef abc defg_a abcdefg_a
acega abcdefg defg ageca a_gfedcba
_a cdefg _fdb aceg ceg

二、常用方法

2.1 查找

查找字符串:即查找子串在字符串中的位置或出现的次数

  • find():检测某个字串是否包含在某个字符串中,若存在则返回该子串开始位置下标,否则返回-1
    • 语法:字符串序列.find(子串,开始位置下标,结束位置下标)
  • index():检测某个子串是否包含在某个字符串中,若存在则返回该子串开始位置下标,否则报异常
    • 语法:字符串序列.index(子串,开始位置下标,结束位置下标)
  • rfind():和find()功能相同,但查找方向为右侧开始,即返回子串最后出现位置
  • rindex():和index()功能相同,但查找方向为右侧开始,即返回子串最后出现位置
  • count():返回某个子串在字符串中出现的次数

举例如下:

str = 'abcdefg_a'
print('-------------------查找-------------------')
print(str.find('c'), str.find('fg', 2, ), str.find('a', 2), str.find('h'))
print(str.index('c'), str.index('fg', 2, ), str.index('a', 2))
print(str.find('a'), str.rfind('a'), str.index('a'), str.rindex('a'), str.count('a'))
print(str.index('h'))

输出:
-------------------查找-------------------
2 5 8 -1
2 5 8
0 8 0 8 2
ValueError: substring not found

2.2 修改

修改字符串:通过函数形式修改字符串中的数据

  • replace():替换
    • 语法:字符串序列.replace(旧子串,新子串,最大替换次数)
  • split():按指定字符分割字符串
    • 语法:字符串序列.split(分割字符,分割次数)  # 返回数据个数分割次数+1
  • join():用一个字符或子串合并字符串,即将多个字符串合并为一个新的字符串
    • 语法:字符或子串.join(多字符串组成的序列)
  • capitalize():将字符串第一个字符转为大写,转换后仅首字符大写,其余均小写
    • 语法:字符串序列.capitalize() 
  • title():将字符串每个单词首字母转为大写
  • lower():将字符串中大写转小写
  • upper():将字符串中小写转大写
  • swapcase():翻转字符串中大小写
  • partition('分隔符'):根据指定分隔符将字符串分割,返回三元元组,组成为左子串、分隔符、右子串
  • min(str):返回字符串str中最小字母
  • max(str):返回字符串str中最大字母
  • zfill(width):输出指定长度为width的字符串,右对齐,不足前面补0,超出指定长度则原样输出
  • lstrip():删除字符串左侧空格字符
  • rstrip():删除字符串右侧空格字符
  • strip():删除字符串两侧空格字符
  • ljust():字符串左对齐,并用指定字符(默认空格)填充至对应长度
    • 语法:字符串序列.ljust(长度,填充字符)
  • rjust():字符串右对齐,并用指定字符(默认空格)填充至对应长度
    • 语法:字符串序列.rjust(长度,填充字符)
  • center():居中对齐,并用指定字符(默认空格)填充至对应长度
    • 语法:字符串序列.center(长度,填充字符)

举例如下:

print('--------------修改--------------')
str1 = 'hello python and hello IT and hello world and hello YX !'
print(str1.replace('and','&&'))
print(str1.split('and'), str1.split('and', 2))
l = ['Hello', 'world', '!']
t = ('Hello', 'python', '!')
print('_'.join(l), ' '.join(t))  # 用下划线_和空格连接
print(str1.capitalize())  # 首字符转为大写,其余均小写
print(str1.title())  # 每个单词首字母转为大写
str2 = '   Hello World !   '
print(str2.lower(), str2.upper(), str2.swapcase())  # 大写转小写,小写转大写,翻转大小写
print(str2.partition('rl'), str2.partition('o'))  # 根据指定分隔符将字符串分割,返回三元元组
print(min(str2), max(str2), ord(min(str2)), ord(max(str2)))  # str2中最小为空格对应十进制32,最大为r对应114
print(str2.zfill(21))  # 输出指定长度为21的字符串,右对齐,不足前面补0,超出指定长度则原样输出
print(str2.lstrip(), str2.rstrip(), str2.strip())  # 清除字符串左、右、两边空格字符
str3 = 'hello!'
print(str3.ljust(13, '*'), str3.rjust(13, '*'), str3.center(14, '*'))

输出:
--------------修改--------------
hello python && hello IT && hello world && hello YX !
['hello python ', ' hello IT ', ' hello world ', ' hello YX !'] ['hello python ', ' hello IT ', ' hello world and hello YX !']
Hello_world_! Hello python !
Hello python and hello it and hello world and hello yx !
Hello Python And Hello It And Hello World And Hello Yx !
   hello world !       HELLO WORLD !       hELLO wORLD !   
('   Hello Wo', 'rl', 'd !   ') ('   Hell', 'o', ' World !   ')
  r 32 114
00   Hello World !  
Hello World !       Hello World ! Hello World !
hello!******* *******hello! ****hello!****

2.3 判断

  • startswith():检查字符串是否以指定子串开头,若是返回True,否则返回False,设置开始和就结束位置下标,则在指定范围内检查
    • 语法:字符串序列.startswith(子串,开始位置下标,结束位置下标)
  • endswith():检查字符串是否以指定子串结尾,是返回True,否则返回False,设置开始和就结束位置下标,则在指定范围内检查
    • 语法:字符串序列.endswith(子串,开始位置下标,结束位置下标)
  • isalpha():若字符串至少有一个字符并所有字符都是字母则返回True,否则返回False
  • isdigit():若字符串只包含数字则返回True否则返回False
  • isalnum():若字符串至少有一个字符且所有字符都是字母或数字则返回True,否则返回False
  • isspace():若字符串只包含空格,则返回True,否则返回False

举例如下:

print('---------------判断----------------')
str3 = 'hello!'
print(str3.startswith('he'), str3.startswith('she'), str3.startswith('he',2,))
print(str3.endswith('!'), str3.endswith('。'), str3.endswith('!', 2, 5))
print(str3.isalpha(),str3.isalnum(), str3.isdigit(), str3.isspace())

输出:
---------------判断----------------
True False False
True False False
False False False False

导航:http://xqnav.top/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python字符串切片及常用方法 的相关文章

随机推荐

  • 【A200】 TX1核心 JetPack4.6.2版本如何修改DTB文件测试全部SPI

    大家好 xff0c 我是虎哥 xff0c 很长时间没有发布新内容 xff0c 主要是这段时间集中精力 xff0c 研究DTB设备树的修改 xff0c 以适配不同载板 xff0c 同时也是专门做了一个TX1 amp TX2核心 xff0c 双
  • windows下使用python生成安装包(可实现安装和卸载等)

    在实际生活中 xff0c 每个人都是通过使用安装包的方式对软件进行安装和卸载 xff0c 这样才能让每个人都不需要懂代码就能使用我们编写的软件 那么python编写的软件应该怎样实现这个过程尼 xff1f 下面就进行详细的讲解 一 使用py
  • idea翻译插件

    平常在使用idea工具开发项目或者是追源码时 xff0c 遇见很多不认识的代码可能需要复制然后粘贴到百度翻译很麻烦 xff0c 今天给大家带带来一个idea翻译插件 xff0c 安装方便 xff0c 使用方便 xff0c 还不收费 xff0
  • Java设计模式之模板模式

    目录 模板模式的介绍 模板模式的案例 模板模式的优缺点 总结 模板模式的介绍 定义一个操作中算法的骨架 xff0c 而将一些步骤延迟到子类中 xff0c 模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤 通俗易懂的话来说
  • Java设计模式之装饰器模式

    装饰器模式是什么 装饰器模式是指给一个类增强一些方法 xff0c 对其做一些包装 xff0c 但是不会影响改变原本类 解决了什么问题 xff1a 假设有一个炸鸡接口 xff0c 定义了一个制作炸鸡的方法 xff0c 麦当劳和肯德基和德克士对
  • Spring boot+Spring security+JWT实现前后端分离登录认证及权限控制

    借鉴文章 xff1a Springboot 43 Spring Security 实现前后端分离登录认证及权限控制 I am Rick Hu的博客 CSDN博客 springsecurity前后端分离登录认证 最近一段时间 xff0c 公司
  • 从源码理解SpringBootServletInitializer的作用

    写在前面 xff1a 各位读友们好 xff0c 最近已经很久没有更新文章了 xff0c 并不是觉得写文章没意思之类的 xff0c 笔者很希望能在 34 乱七八糟 34 的互联上做一些开源 xff08 能力有限 xff0c 先做现有技术和思想
  • 深入理解Linux内核select多路复用原理

    写在前面 xff1a 本文以Linux2 6 0的内核源码进行讲解 xff0c 使用x86 32位机讲解 多路复用原理 讲多路复用的原理 xff0c 那么一定先要讲没有多路复用的弊端 传统的阻塞式 xff0c 进程一旦io读写就开始阻塞 x
  • Spring Cloud组件源码之LoadBalancer源码分析

    34 Spring 到底是春天的来临万物复苏 xff0c 还是春转夏的干燥又炎热呢 xff1f 34 Spring的来临让JavaEE走向了另一个高度 便捷的开发 xff0c 完美的生态 物极必反 xff0c 学习Spring的成本越来越低
  • Spring Cloud LoadBalancer自定义负载均衡策略

    由于原有的负载均衡组件Ribbon停止维护 xff0c 而完美的Spring生态怎能允许缺少负载均衡组件呢 xff1f Spring Cloud官方自己造出了Spring Cloud LoadBalancer来代替原有的Ribbon 由于是
  • JVM Shutdown Hook 机制原理以及源码分析

    写在前面 最近看众多框架源码的时候都看到使用到了Shutdown Hook机制 比如下图 xff1a SkyWalking Spring Tomcat等等框架 xff0c 几乎只要是Java层面的框架都会使用到此机制 所以 xff0c 借用
  • 【Jeston Orin】Orin nano 8G模块使用官方系统包生成标准烧写系统测试

    大家好 xff0c 我是虎哥 xff0c GTC 2023上 xff0c NVIDIA正式推出了面向边缘AI的新一代入门款开发套件 xff0c Jetson Orin Nano Developer Kit 虽说只是入门套件 xff0c 但据
  • Ubuntu(Linux)中如何放大终端字体

    Ubuntu中如何放大终端字体 Shift 43 ctrl 43 43
  • 【大数据】第三章:详解HDFS(送尚硅谷笔记和源码)

    什么是HDFS HDFS是 xff08 Hadoop Distributed File System xff09 的缩写 xff0c 也即Hadoop分布式文件系统 它通过目录树定位在分布式场景下 在不同服务器主机上的文件 它适用于一次写入
  • CSP第一次模拟 A 咕咕东的奇遇

    题目描述 xff1a 有一个圆环 xff0c 由字母表中字母首尾相接组成 环上有一个指针 xff0c 最初指向a 每次可顺时针或逆时针旋转一格 例如 xff1a a顺时针转到b xff0c 逆时针转到z 现在有一个字符串 xff0c 求需要
  • WEEK 5 B TT's Magic Cat

    题目 xff1a Thanks to everyone s help last week TT finally got a cute cat But what TT didn t expect is that this is a magic
  • WEEK 11 E 选做题1 东东与 ATM

    题目 一家银行计划安装一台用于提取现金的机器 机器能够按要求的现金量发送适当的账单 机器使用正好N种不同的面额钞票 xff0c 例如D k xff0c k 61 1 2 N xff0c 并且对于每种面额D k xff0c 机器都有n k张钞
  • Vue3.0的新语法糖-script setup

    lt script setup gt 是vue3中新引入的语法糖 xff0c 目的是简化使用Composition API时冗长的模板代码 lt script setup gt 是在单文件组件 SFC 中使用组合式 API 的编译时语法糖
  • MODIS数据下载——CSV模式直接下载hdf文件

    前提 xff1a 经常下载MODIS数据就会发现 xff0c NASA官网经常不干活 NSAS官网经常会有订单归档困难的情况 xff0c 不能通过订单批量下载 xff0c 这样就无法直接下载选定波段 经过投影与转tif处理后的数据了 订单批
  • python字符串切片及常用方法

    一 切片 切片 xff1a 指对操作的对象截取其中一部分的操作 xff0c 字符串 列表 元组都支持切片操作 语法 xff1a 序列 开始位置下标 结束位置下标 步长 xff0c 不包含结束位置下标数据 xff0c 步长为选取间隔 xff0