Python学习之字符串函数使用详解

 更新时间:2021年12月18日 10:59:48   作者:涤生手记大数据  
Python的友好在于提供了非常好强大的功能函数模块,对于字符串的使用,同样提供许多简单便捷的字符串函数。Python 字符串自带了很多有用的函数,快来跟随小编学习一下这些函数的应用详解吧

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 搜索字符串函数

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

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

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

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

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

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

2 设置字符串格式函数

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

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 re
 
def 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 改变字符串大小写函数

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

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

4 选定字符串函数

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

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

2.删除字符串情况:

5 拆分字符串函数

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

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

6 替换字符串函数

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

到此这篇关于Python学习之字符串函数使用详解的文章就介绍到这了,更多相关Python字符串函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python将ip地址转换成整数的方法

    python将ip地址转换成整数的方法

    这篇文章主要介绍了python将ip地址转换成整数的方法,涉及Python针对IP地址的转换技巧,需要的朋友可以参考下
    2015-03-03
  • python中黄金分割法实现方法

    python中黄金分割法实现方法

    这篇文章主要介绍了python中黄金分割法实现方法,涉及Python数学计算的相关技巧,需要的朋友可以参考下
    2015-05-05
  • python 爬虫基本使用——统计杭电oj题目正确率并排序

    python 爬虫基本使用——统计杭电oj题目正确率并排序

    这篇文章主要介绍了python 爬虫基本的基本使用,主要利用了Urllib和BeautifulSoup4这两个库,配以简单的实例帮助大家理解,感兴趣的朋友可以了解下
    2020-10-10
  • python实现批量按比例缩放图片效果

    python实现批量按比例缩放图片效果

    这篇文章主要为大家详细介绍了python实现批量按比例缩放图片效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • python读取注册表中值的方法

    python读取注册表中值的方法

    在Python的标准库中,_winreg.pyd可以操作Windows的注册表,另外第三方的win32库封装了大量的Windows API,使用起来也很方便。不过这里介绍的是使用_winreg操作注册表,毕竟是Python自带的标准库,无需安装第三方库
    2013-04-04
  • Python利用tkinter实现一个简易番茄钟的示例代码

    Python利用tkinter实现一个简易番茄钟的示例代码

    番茄钟是番茄工作法使用的一个时间表,即选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后在纸上画一个X短暂休息一下。本文用tkinter实现一个简易番茄钟,需要的可以参考一下
    2022-12-12
  • Python实现封装打包自己写的代码,被python import

    Python实现封装打包自己写的代码,被python import

    这篇文章主要介绍了Python实现封装打包自己写的代码,被python import,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Java 超详细讲解核心类Spring JdbcTemplate

    Java 超详细讲解核心类Spring JdbcTemplate

    JdbcTemplate JdbcTemplate是Spring JDBC核心包(core)中的核心类,它可以通过配置文件、注解、Java 配置类等形式获取数据库的相关信息,实现了对JDBC开发过程中的驱动加载、连接的开启和关闭、SQL语句的创建与执行、异常处理、事务处理、数据类型转换等操作的封装
    2022-04-04
  • mac安装scrapy并创建项目的实例讲解

    mac安装scrapy并创建项目的实例讲解

    今天小编就为大家分享一篇mac安装scrapy并创建项目的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • flask框架使用orm连接数据库的方法示例

    flask框架使用orm连接数据库的方法示例

    这篇文章主要介绍了flask框架使用orm连接数据库的方法,结合实例形式分析了flask框架使用flask_sqlalchemy包进行mysql数据库连接操作的具体步骤与相关实现技巧,需要的朋友可以参考下
    2018-07-07

最新评论