`
kiddwyl
  • 浏览: 403521 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

python中string的操作函数

阅读更多
在python有各种各样的string操作函数。在历史上string类在python中经历了一段轮回的历史。在最开始的时候,python有一个专门的string的module,要使用string的方法要先import,但后来由于众多的python使用者的建议,从python2.0开始, string方法改为用S.method()的形式调用,只要S是一个字符串对象就可以这样使用,而不用import。同时为了保持向后兼容,现在的 python中仍然保留了一个string的module,其中定义的方法与S.method()是相同的,这些方法都最后都指向了用S.method ()调用的函数。要注意,S.method()能调用的方法比string的module中的多,比如isdigit()、istitle()等就只能用 S.method()的方式调用。

对一个字符串对象,首先想到的操作可能就是计算它有多少个字符组成,很容易想到用S.len(),但这是错的,应该是len(S)。因为len()是内置函数,包括在__builtin__模块中。python不把len()包含在string类型中,乍看起来好像有点不可理解,其实一切有其合理的逻辑在里头。len()不仅可以计算字符串中的字符数,还可以计算list的成员数,tuple的成员数等等,因此单单把len()算在string里是不合适,因此一是可以把len()作为通用函数,用重载实现对不同类型的操作,还有就是可以在每种有len()运算的类型中都要包含一个len()函数。 python选择的是第一种解决办法。类似的还有str(arg)函数,它把arg用string类型表示出来。

字符串中字符大小写的变换:

S.lower()   #小写
S.upper()   #大写
S.swapcase()   #大小写互换
S.capitalize()   #首字母大写
String.capwords(S)  
#这是模块中的方法。它把S用split()函数分开,然后用capitalize()把首字母变成大写,最后用join()合并到一起
S.title()    #只有首字母大写,其余为小写,模块中没有这个方法


字符串在输出时的对齐:

S.ljust(width,[fillchar])  
#输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
S.rjust(width,[fillchar])    #右对齐
S.center(width, [fillchar])    #中间对齐
S.zfill(width)   #把S变成width长,并在右对齐,不足部分用0补足

字符串中的搜索和替换:

S.find(substr, [start, [end]])  
#返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索
S.index(substr, [start, [end]])  
#与find()相同,只是在S中没有substr时,会返回一个运行时错误
S.rfind(substr, [start, [end]])  
#返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
S.rindex(substr, [start, [end]])
S.count(substr, [start, [end]])    #计算substr在S中出现的次数
S.replace(oldstr, newstr, [count])   
#把S中的oldstar替换为newstr,count为替换次数。这是替换的通用形式,还有一些函数进行特殊字符的替换
S.strip([chars])
#把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None
S.lstrip([chars])
S.rstrip([chars])
S.expandtabs([tabsize])  
#把S中的tab字符替换没空格,每个tab替换为tabsize个空格,默认是8个
字符串的分割和组合:

S.split([sep, [maxsplit]])
#以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符
S.rsplit([sep, [maxsplit]])
S.splitlines([keepends])
#把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
S.join(seq) #把seq代表的序列──字符串序列,用S连接起来

字符串的mapping,这一功能包含两个函数:

String.maketrans(from, to)
#返回一个256个字符组成的翻译表,其中from中的字符被一一对应地转换成to,所以from和to必须是等长的。
S.translate(table[,deletechars])
# 使用上面的函数产后的翻译表,把S进行翻译,并把deletechars中有的字符删掉。需要注意的是,如果S为unicode字符串,那么就不支持 deletechars参数,可以使用把某个字符翻译为None的方式实现相同的功能。此外还可以使用codecs模块的功能来创建更加功能强大的翻译表。
字符串还有一对编码和解码的函数:

S.encode([encoding,[errors]])
# 其中encoding可以有多种值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为"strict",意思是UnicodeError。可能的值还有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通过codecs.register_error注册的值。这一部分内容涉及codecs模块,不是特明白

S.decode([encoding,[errors]])
字符串的测试函数,这一类函数在string模块中没有,这些函数返回的都是bool值:

S.startwith(prefix[,start[,end]])
#是否以prefix开头
S.endwith(suffix[,start[,end]]) 
#以suffix结尾
S.isalnum() 
#是否全是字母和数字,并至少有一个字符
S.isalpha()  #是否全是字母,并至少有一个字符
S.isdigit()  #是否全是数字,并至少有一个字符
S.isspace() #是否全是空白字符,并至少有一个字符
S.islower() #S中的字母是否全是小写
S.isupper() #S中的字母是否便是大写
S.istitle() #S是否是首字母大写的

字符串类型转换函数,这几个函数只在string模块中有:

string.atoi(s[,base]) 
#base默认为10,如果为0,那么s就可以是012或0x23这种形式的字符串,如果是16那么s就只能是0x23或0X12这种形式的字符串
string.atol(s[,base])  #转成long
string.atof(s[,base])  #转成float

这里再强调一次,字符串对象是不可改变的,也就是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。任何上面的函数改变了字符串后,都会返回一个新的字符串,原字串并没有变。其实这也是有变通的办法的,可以用S=list(S)这个函数把S变为由单个字符为成员的list,这样的话就可以使用S[3]='a'的方式改变值,然后再使用S=" ".join(S)还原成字符串
分享到:
评论

相关推荐

    整理Python 常用string函数(收藏)

    字符串中字符大小写的变换 1. str.lower() //小写 >>> ‘SkatE’.lower() ‘skate’ 2. str.upper() //大写 >>> ‘SkatE’.upper() ‘SKATE’ 3. str.swapcase() //大小写互换 >>> ‘SkatE’.swapcase() ‘sKATe’ 4...

    java调用python中的自定义函数函数

    本文将深入探讨如何在Java中调用Python的自定义函数,特别是执行加法运算。我们将重点关注以下几个方面:Java与Python的互操作性、使用Apache的Jython库以及实际的代码示例。 首先,我们要理解Java与Python之间的互...

    python中的real函数-RealPython基础教程:Python字符串用法详解.pdf

    - Python支持多种字符串格式化方式,包括传统的`%`操作符,`str.format()`方法,以及新的f-string语法。 在处理字符串时,了解这些基本概念和操作是非常重要的。Python的字符串功能强大且灵活,使得处理文本数据变...

    Python string 操作举例,列举python操作字符传的基本操作

    在Python 2中,`print`语句用法略有不同,它不是一个函数,因此不需要括号: ```python print a # Python2 ``` 其余的字符串操作与Python 3基本相同,但推荐使用Python 3的语法,因为它是现代Python开发的标准。 ...

    Python调用C函数实例

    Python对象可以转换为`PyObject*`指针,并在C函数内部操作。例如,接收一个字符串并返回其长度: ```c #include <Python.h> static PyObject* py_string_length(PyObject* self, PyObject* arg) { char* str; if...

    Python中文操作手册

    本"Python中文操作手册"是针对Python编程者的重要参考资料,类似于Java的API文档,提供详尽的函数、模块和类的说明,便于开发者在编写代码时进行查阅和学习。 这个手册覆盖了Python 2.4版本,虽然Python已经发展到3...

    python调用C++函数

    本文将详细介绍如何在Python中调用C++函数,以实现Python与C++的交互。 首先,我们需要理解Python与C++之间的接口是如何建立的。Python提供了一种称为`ctypes`的库,它允许我们直接调用动态链接库(DLL或SO)中的C...

    python中的replace函数.docx

    Python中的`replace()`函数是字符串操作的一个重要工具,它允许你在字符串中查找并替换特定的子串。这个函数对于处理文本数据,尤其是处理用户输入或从文件读取的数据时非常有用。下面我们将深入探讨`replace()`函数...

    python内置函数大全

    在Python编程语言中,内置函数是不需要导入任何模块就可以直接使用的函数,它们由Python解释器提供,为常见操作提供方便。Python 3.6版本中的内置函数非常丰富,涵盖了数据类型转换、逻辑判断、数学运算、迭代器处理...

    收集的C调用Python函数资料

    这通常通过Python的类型转换函数完成,如`PyLong_FromLong()`(对于整型),`PyUnicode_FromString()`(对于字符串)等。 5. **调用Python函数**: 使用`PyObject_CallObject()`函数来调用Python函数,传入函数...

    详解C++调用Python脚本中的函数的实例代码

    在main函数中,要首先调用Py_Initialize()函数初始化Python环境。初始化后,通过PyRun_SimpleString执行Python命令导入sys模块,以确保Python可以正常导入其他模块。 接着,通过PyRun_SimpleString添加模块路径到...

    python格式化输出:fstring格式化输出.docx

    从早期的`%s`格式化到`str.format()`方法,再到Python 3.6中引入的f-string(格式化字符串字面量),Python中的字符串格式化技术一直在进化,变得更加直观且高效。 #### 1. f-string简介 f-string是一种在Python ...

    Python常用内置函数和方法

    Python 中的内置函数和方法是非常重要的,它们提供了一些基本的功能,可以帮助开发者快速地实现一些常见的操作。下面我们将对 Python 中的一些常用内置函数和方法进行介绍。 input 函数 input 函数的功能是接收一...

    Python库 | python-string-utils-0.4.0.tar.gz

    总的来说,`python-string-utils`库为Python开发者提供了丰富的字符串操作功能,能够提升文本处理任务的效率,是Python开发工具箱中的一个重要组成部分。学习和掌握这个库的用法,将有助于你更好地应对各种字符串...

    python中string模块各属性以及函数的用法介绍

    ### Python中的String模块及其属性与函数的用法详解 在Python编程中,处理字符串是非常常见的需求之一。Python提供了丰富的内置函数来支持字符串的各种操作,包括大小写转换、格式化输出、搜索定位等。此外,Python...

    string 函数操作代码

    在编程领域,字符串(String)是数据处理的重要组成部分,尤其在高级编程语言中,如C++、Python、Java等。字符串是由字符组成的序列,可以进行各种操作和处理。本篇文章将详细探讨`string`函数操作代码相关的知识,...

    C++之python函数调用

    在`InvokeNoParm()`函数中,`a`函数被调用,但不传递任何参数。 6. **调用有参数函数**: 对于有参数的函数,如`InvokeWith1Parm()`和`InvokeWith2Parm()`所示,首先需要使用`Py_BuildValue()`创建参数元组,然后...

    python中string模块属性以函数应用-供大家学习研究参考

    def format_field(self, value, format_spec): return format(value, format_spec) def convert_field(self, value, conversion): # do any conversion on the resulting object ...

    学学Python_31函数_创建函数01

    其他文件如`stringMethod.py`、`stringAdvanceOprate.py`、`stringFormatPrint.py`、`stringOprate.py`等,可能涉及字符串操作的函数,学习如何在函数中处理字符串数据。 `stringMethod02.py`和`sentenceLoop1.py`...

Global site tag (gtag.js) - Google Analytics