Python字符串函数使用详解

article/2025/10/3 18:11:28

Python的友好在于提供了非常好强大的功能函数模块,对于字符串的使用,同样提供许多简单便捷的字符串函数。Python 字符串自带了很多有用的函数,在字符串函数之前先介绍一个非常实用的dir()内置函数,因为对每一个初学者还是大佬级别的python程序员,都不能完全记住所有方法。而该函数可以查看所有这些函数,可调用 dir 并将参数指定为任何字符串(如 dir("")),其返回值包括字符串可以使用的变量、方法和定义的类型。

>>> dir("")
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__','__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

 其也提供对功能函数的查询,比如经常使用的math()函数,所以无论是对后面所阐述的字符串函数还是其它函数,我们都可以用dir()内置函数来了解其它函数的类型、定义等等。下面所讲述的字符串函数会区分其不同功能来分开介绍,其函数的实现功能大致包含以下六个功能:索引特殊字符串、设置字符格式、修改字符串大小写、查看字符串特定格式、替换特定字符串、拆分特定字符串

1 搜索字符串函数

假如我们需要在一段字符串中查找特定的子串时,通常涉及以下几个函数:

函数名

返回值

string.find(i)

如果没有找到子串i,则返回 -1;否则 返回 子串i 在 string 中的起始位置

string.rfind(i)

与 find 相同,但从右往左搜索

string.index(i)

与 find 相同,但如果在 string 中找不到 i, 则引发 ValueError 异常

string.rindex(i)

与 index 相同,但从右往左搜索

虽然这几个函数都实现了搜索特定字符串的功能,但还是包含一些区别的:

1. 函数 index 和 find 之间的差别在于没有找到指定子串时的情形 ,示例如下:

函数index会抛出异常 ValueError,而如果没有找到指定的子串,函数find将返回 -1。

2.字符串搜索函数通常从左往右(从开头往末尾)搜索,但以 r 打头的函数从右往左搜索。例如:

可以看到, 函数 find 和 index 返回传入字符串第一次出现时的起始位置索引,而 rfind 和 rindex 返回传入字符串最后一次出现时的起始位置索引。

2 设置字符串格式函数

下表列出了一些设置字符串格式的函数:

函数名

返回值

string.center(i)

返回一个原字符串居中,并使用空格填充至长度 i 的新字符串

string.ljust(i)

返回一个原字符串左对齐,并使用空格填充至长度 i 的新字符串

string.rjust(i)

返回一个原字符串右对齐,并使用空格填充至长度 i 的新字符串

string.format(i)

提供变量,格式化字符串(python2.6后新增)

center(),ljust()和rjust()函数在日常用的使用很少,反倒是Python2.6以后的format()受到了广大字符串处理者的使用。使用format函数需要给它提供变量或者值,一个简单的例子:字符串中的 {0} 和 {1} 引用 format 的参数:它们将被替换为相应字符串或变量的值。也可以使用关键字参数的名称,

>>> '{0} like eat {1}'.format('Wangzi','banana')
'Wangzi like eat banana'
>>> '{who} {id} is Linda'.format(who='My',id='name')
'My name is Linda'

这是一些比较简单的例子,还有更多细节方面的使用可以参考string — Common string operations — Python 3.10.1 documentation。下面举一个在抓取jmx数值的实际使用案例。在大数据组件使用过程中,我们通常抓取jmx接口的数据获取详情,然后将数据接到相关的展示系统中来监控和展示:例如我们需要抓取一个队列任务扥id,使用者,运行时间等指标值(此处IP做了处理,有问题可以咨询博主)。

import json
import urllib3
import redef get_ative_resourcemanager(rm1, rm2):http = urllib3.PoolManager()rm_list = [rm1, rm2]for resourcemanager in rm_list:url = 'http://{0}/ws/v1/cluster/info'.format(resourcemanager)response = http.request('GET', url)data = json.loads(response.data)ha_state = data['clusterInfo']['haState']if ha_state == "ACTIVE":return resourcemanager
'''Conversion time function'''
# 毫秒级转化为hour/minutes
def conver_time(allTime):hours = (allTime/(60*60*1000))return hours'''get active resourcemanager yarn application metrics'''
def get_queue_metrics():active_resoucemanager = get_ative_resourcemanager('ip1:port','ip2:port')http = urllib3.PoolManager()url = 'http://{0}/ws/v1/cluster/apps'.format(active_resoucemanager)response = http.request('GET', url)data = json.loads(response.data).get('apps').get('app')length = len(data)for i in range(length):'''判断application状态'''application_state = data[i]['state']queue = data[i]['queue']queue_name = re.findall(r'root.*',queue,re.IGNORECASE)#print(mobdi_queue)if (application_state == 'RUNNING' or application_state == 'ACCEPTED'):if queue_name:id_metric = data[i]['id']user_metric = data[i]['user']queue_metrics = data[i]['queue']elapsed_time = data[i]['elapsedTime']runtime_metric = conver_time(elapsed_time)print(str(id_metric) + " " + str(user_metric) + " " + str(queue_metrics) + " " + str(runtime_metric))if __name__ == '__main__':''''''get_queue_metrics()

执行结果:

3 改变字符串大小写函数

提供改变字符串大小写的函数有以下五个函数:

函数名

返回值

string.capitalize()

字符串的第一个字符大写

string.lower()

将 string 中所有大写字符转为小写

string.upper()

将 string 中的小写字母转为大写

string.swapcase()

转变 string 中的大小写

string.title()

返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写

Python 提供了各种修改字母大小写的函数,如上表。但注意标红的地方,Python并没有修改字符串,而是在这几个函数中,创建并返回一个新字符串,并没有真正修改string源字符串

4 选定字符串函数

选定字符串函数通常用于删除字符串开头或者末尾多余的字符串,具体有striip,lstrip和rstrip三个函数。

函数名

返回值

string.strip(i)

从string开头和末尾删除所有包含在字符串i中的字符

string.lstrip(i)

从string开头(左端)删除所有包含在字符串i中的字符

string.restrip(i)

从string末尾(右端)删除所有包含在 字符串i中的字符

1.如果不加字符串,将删除空白字符串:

2.删除字符串情况:

5 拆分字符串函数

Python提供了以下几个拆分字符串的函数,主要将字符串拆分成多个子串。

函数名

返回值

string.partition(i)

把string 拆分为三个字符串(head,i和tail),其中 head为i前面的子串, 而 tail 为i后面的子串

string. rpartition(i)

与 partition 相同,但从 string 的右端开始搜索 i

string.split(i)

以 i 为分隔符,将 string 划分成一系列子串,并返回一个由这些子串组成的列表

string.rsplit(i)

与 split 相同,但从 striing 的右端开始搜索 i

string.splitlines(i)

返回一个由 string 中的各行组成的列表

注意示例中存在string和string1两个字符串,函数 partition 和 rpartition 将字符串拆分为3部分,这两个函数总是返回一个这样的值:由3个字符串组成, 形式为 (head, sep, tail) ;而函数 split 以指定字符串为分隔符,将 字符串划分为一系列子串,返回一个字符串列表,列表总是分别以 [ 和 ] 打头和结尾,并用逗号分隔元素。splitlines函数按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,使用很少,而且会自行判断字符串是否包含换行符。

6 替换字符串函数

Python内置两个字符串替换函数,包括:

函数名

返回值

string.replace(old, new)

将 string 中的每个 old 替换为 new

string.expandtabs(i)

将 string 中的每个制表符替换为 n 个 空格

小练习

结合之前的Python字符串使用以及Python本身内置的字符串处理函数,做个小练习,用代码实现自定义的replace_替换函数,实现会在下次的文章中实现。


http://chatgpt.dhexx.cn/article/8qIpbY8n.shtml

相关文章

MySQL 十大常用字符串函数

数据库函数是一种具有某种功能的模块,可以接收零个或多个输入值,并且返回一个输出值。MySQL 为我们提供了许多用于处理和分析数据的系统函数,本文给大家介绍 10 个常用的字符串函数,以及相关的其他函数。 1 CONCAT() CONCAT(str1,…

Oracle 中常用的字符串函数总结

一、substr 函数 —— 字符串截取 格式1: substr(string,start_pos,length) 格式2: substr(string,start_pos) 说明: 从指定位置start_pos截取字符串string的length位,如果不指定length(格式2)则从指…

MySQL --- 常用函数 - 字符串函数

函数 MySQL 函数会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。 MySQL 包含了大量并且丰富的函数,咱们讲解几十个常用的,剩下的比较罕见的函数我们可以到「MySQL 参考手册」查询。 字符串函数 函数作用UP…

常用字符串函数的使用

目录 一.求字符串长度 1.strlen用来计算字符串的长度(该长度不包括\0) 二.长度不受限制的字符串函数 1.strcpy字符串拷贝 2.strcat附加一个字符串 3.strcmp字符串大小比较 三.长度受限制的字符串函数介绍 1.strncpy字符串拷贝(能设置要拷贝的字符个…

字符串操作常用函数

字符串常用函数有如下 puts() //输出字符串 gets() //获取字符串 strlen() //计算字符串长度 memset() //初始化 strcpy() strncpy() //字符串的拷贝 strcat() //字符串的拼接 strcmp() //字符串的比较 strchr() strstr() //字符串的查找 strtok…

字符串函数

本文重点 重点介绍处理字符串内存的库函数的使用和注意事项 求字符串长度 ——strlen长度不受限制的字符串函数 ——strcpy、strcat、strcmp长度受限制的字符串函数介绍——strncpy、strncat、strncmp字符串查找——strstr、strtok错误信息报告——strerror字符操作 前言 C语…

java 使用 jep3.5 解析公式自动计算(包含BigDecimal模式 浮点数精准计算)

下载地址: jep3.5 jar包与文档.rar 由于3.X并未上传maven所有只能下载jar包使用maven本地导入 <dependency><groupId>com.singularsys</groupId><artifactId>jep</artifactId><version>3.5</version><scope>system</scope…

【译】Jep 文档(1)——介绍(Introction)

原文连接&#xff08;http://www.singularsys.com/jep/doc/html/index.html&#xff09; 介绍 综述 Jep 是一个用于分析和计算数学表达式的java库。有了这个包&#xff0c;您就可以把数学公式当作是字符串&#xff0c;并且立即求出它们的值。许多常见的数学函数和常量都是内…

Java RMI反序列化/JEP290相关

RMI 远程过程调用 (Remote Procedure Call)是一种服务器-客户端模式&#xff0c; Java的RMI&#xff08;Remote Method Invocation&#xff09;是一种RPC实现。 其基本思想是程序员可以像本地那样&#xff0c;与远程对象进行交互。 步骤&#xff1a; 1、创建一个接口IRemote…

Java第三方库——Jep数学公式计算

Java第三方库——Jep数学公式计算 官网简介&#xff1a;JEP JAVA仅用几行代码解析和计算数学表达式。这个包允许用户以字符串的形式输入公式&#xff0c;并立即对其求值。JEP支持用户定义的变量、常量和函数。包括一些常用的数学函数和常量。 1.下载3.x版本依赖并引入 官方网站…

你知道Java中的JCP, JEP, JLS, JSR是什么意思吗?

目录 一、JCP 二、JSR 三、JLS 四、JEP 公众号&#xff1a;MCNU云原生&#xff0c;欢迎微信搜索关注&#xff0c;更多干货&#xff0c;及时掌握。 JCP, JEP, JLS, JSR这些概念是Java社区中的一些概念&#xff0c;但是没有没有经常关注社区的童鞋们未必知道这些缩写所代表的…

Java中JCP, JEP, JLS, JSR是什么

JCP Java Community Process JCP&#xff08;Java Community Process&#xff09;是一个开放的国际组织&#xff0c;主要由Java开发者以及被授权者组成&#xff0c;职能是发展和更新。 JCP维护的规范包括J2ME、J2SE、J2EE&#xff0c;XML&#xff0c;OSS&#xff0c;JAIN等。组…

java 使用JEP解析字符串计算公式 求值(附带自定义函数编写)

2.X 存在精确度问题 推荐使用3.X 参考文章: java 使用 jep3.5 解析公式自动计算(包含BigDecimal模式 浮点数精准计算) 1.增加jep依赖 <dependency><groupId>org.scijava</groupId><artifactId>jep</artifactId><version>2.4.2</versio…

使用Jep在Java中执行Python代码

接上次用Eclipse编写Python代码&#xff1a;使用Eclipse编写Python代码_Cc_Sonia的博客-CSDN博客_eclipse写python程序 为了把深度学习模型部署到Java App上&#xff0c;需要用Java调用Python。试过Jython&#xff0c;但它只对python2有效。。。最后supervisor建议使用Jep&…

jep的使用

参考jep官网:http://www.singularsys.com/jep/ Jep Java只用几行代码解析和评估数学表达式。此程序包允许您的用户输入公式作为字符串&#xff0c;并立即对其进行评估。Jep支持用户定义的变量&#xff0c;常量和函数。包括许多常见的数学函数和常数。 那么啰嗦,说白了就是支持…

python JEP安装

安装python ( 深坑 &#xff1a;安装之前请yum install python3-devel 避免出现i.e.: export LD_PRELOAD/usr/lib/libpython2.7.so.1.0 问题 ) 下载源码 Python Release Python 3.6.5 | Python.org 解压 进入目录 ./configure --prefix/opt/software/python --enab…

JEP:Java表达式分析器

JEP 是一个用于解析和计算数学表达式的 Java 类库。通过使用这个包你可以把公式看 作字符串并快速计算它们。其中内置了大量公共的数学函数和常量供用户使用。另外&#xff0c;你也 可以通过自定义变量、常量、函数等方式扩展 JEP 。 使用 JEP 计算一个字符串表达式包括…

java 使用JEP 进行节点计算

2.X 存在精确度问题 推荐使用3.X 参考文章: java 使用 jep3.5 解析公式自动计算(包含BigDecimal模式 浮点数精准计算)​​​​​​​ 1.JEP基础相关 请参考: java 使用JEP解析字符串计算公式 求值(附带自定义函数编写) 2.使用节点计算 注释写的很明白 要仔细看 public st…

如何在Java中执行Python模块?从认识JEP库开始

让我们从认识JEP库开始。 关注《Java学研大本营》 本教程基于带M1芯片的macOSX&#xff0c;用于Python 3.8/3.9和Java 11。 介绍 从我的实践来讲&#xff0c;我遇到的上一个挑战是&#xff0c;当基础应用引擎是Java的时候&#xff0c;我按常理应该添加一个新的机器学习功能。…

JEP 290 初识

JEP 290 初识 全局过滤器自定义过滤器内置过滤器 JEP 290是 oracle提供已一套JAVA反序列化机制&#xff0c;其并不是一种必须被强制执行的策略&#xff0c;而是需要程序员或者运维人员进行开发与启用。关于该机制的优缺点借用老外的一篇文章 https://dzone.com/articles/a-firs…