一、查看字符串的内建函数

  1. >>> dir(str)
  2. ['__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']
  1. In [1]: a = '123'
  2.  
  3. In [2]: a.
  4. a.capitalize a.endswith a.index a.isidentifier a.istitle a.lstrip a.rindex a.split a.title
  5. a.casefold a.expandtabs a.isalnum a.islower a.isupper a.maketrans a.rjust a.splitlines a.translate
  6. a.center a.find a.isalpha a.isnumeric a.join a.partition a.rpartition a.startswith a.upper
  7. a.count a.format a.isdecimal a.isprintable a.ljust a.replace a.rsplit a.strip a.zfill
  8. a.encode a.format_map a.isdigit a.isspace a.lower a.rfind a.rstrip a.swapcase

二、常用的字符串内建函数

1、capitalize,字符串的第一个字符大写

  1. >>> a = 'today is a good day.'
  2. >>> a.capitalize()
  3. 'Today is a good day.'

2、 casefold,将所有字符小写,Unicode所有字符均适用

  1. >>> b
  2. 'TODAY IS A GOOD DAY.'
  3. >>> b.casefold()
  4. 'today is a good day.'

3、lower,将所有字符小写,只适用ASCii

  1. >>> b
  2. 'TODAY IS A GOOD DAY.'
  3. >>> b.lower()
  4. 'today is a good day.'

4、upper,将所有字符大写

  1. >>> a
  2. 'today is a good day.'
  3. >>> a.upper()
  4. 'TODAY IS A GOOD DAY.'

5、center,返回一个原字符串居中,并使用空格填充至长度 width 的新字符串,语法:str.center(width[, fillchar])

  1. >>> a
  2. 'today is a good day.'
  3. >>> a.center(40)
  4. ' today is a good day. '

6、count,用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置,语法:str.count(sub, start= 0,end=len(string))

  1. >>> a
  2. 'today is a good day.'
  3. >>> a.count('a')
  4. 3
  5. >>> a.count('a', 5, -2)
  6. 2

7、encode,以 encoding 指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案,语法:str.encode(encoding='UTF-8',errors='strict')

errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。

  1. >>> c = '你好'
  2. >>> c.encode(encoding='utf-8')
  3. b'\xe4\xbd\xa0\xe5\xa5\xbd'

8、decode,以 encoding 指定的编码格式解码字符串。默认编码为字符串编码,语法:str.decode(encoding='UTF-8',errors='strict')

  1. >>> d
  2. b'\xe4\xbd\xa0\xe5\xa5\xbd'
  3. >>> d.decode(encoding='utf-8')
  4. '你好'

9、startwith,检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查,语法:str.startswith(str, beg=0,end=len(string))

  1. >>> a
  2. 'today is a good day.'
  3. >>> a.startswith('today')
  4. True
  5. >>> a.startswith('day')
  6. False
  7. >>> a.startswith('day', 5)
  8. False
  9. >>> a.startswith('today', 5)
  10. False

10、endwith,判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置,语法:str.endswith(suffix[, start[, end]])

  1. >>> a
  2. 'today is a good day.'
  3. >>> a.endswith('day.')
  4. True
  5. >>> a.endswith('today.')
  6. False
  7. >>> a.endswith('day.', 5)
  8. True

11、expandtabs,把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8,语法:str.expandtabs(tabsize=8)

  1. >>> e = ' today is a good day. '
  2. >>> e
  3. '\ttoday is \ta good day.\t\t'
  4. >>> e.expandtabs(4)
  5. ' today is a good day. '

12、find,检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1,语法:str.find(str, beg=0, end=len(string))

  1. >>> a
  2. 'today is a good day.'
  3. >>> a.find('a')
  4. 3
  5. >>> a.find('a', 10)
  6. 17
  7. >>> a.find('abc')
  8. -1

13、index,检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不存在 string中会报一个异常,语法:str.index(str, beg=0, end=len(string))

  1. >>> a
  2. 'today is a good day.'
  3. >>> a.index('a')
  4. 3
  5. >>> a.index('a', 10)
  6. 17
  7. >>> a.index('abc', 10)
  8. Traceback (most recent call last):
  9. File "<console>", line 1, in <module>
  10. ValueError: substring not found

14、isalnum,检测字符串是否由字母和数字组成

  1. >>> a = 'wang512'
  2. >>> a.isalnum()
  3. True
  4. >>> a = 'wang'
  5. >>> a.isalnum()
  6. True
  7. >>> a = '512'
  8. >>> a.isalnum()
  9. True
  10. >>> a = 'wang 512'
  11. >>> a.isalnum()
  12. False

15、isalnum,检测字符串是否只由字母组成

  1. >>> a = 'wang'
  2. >>> a.isalpha()
  3. True
  4. >>> a = '512'
  5. >>> a.isalpha()
  6. False

16、isdecimal ,检查字符串是否只包含十进制字符。这种方法只存在于unicode对象

  1. >>> a = '12345'
  2. >>> a.isdecimal()
  3. True
  4. >>> a = 'wang'
  5. >>> a.isdecimal()
  6. False

17、isdigit,检测字符串是否只由数字组成

  1. >>> a = '12345'
  2. >>> a.isdigit()
  3. True
  4. >>> a = 'wang'
  5. >>> a.isdigit()
  6. False

18、isidentifier,检测字符串是否以字母开头

  1. >>> a.isidentifier()
  2. False
  3. >>> a = 'wang'
  4. >>> a.isidentifier()
  5. True

19、islower,检测字符串是否由小写字母组成。

  1. >>> a = "wang"
  2. >>> a.islower()
  3. True
  4. >>> a = "Wang"
  5. >>> a.islower()
  6. False

20、isupper,检测字符串中所有的字母是否都为大写。

  1. >>> a = "WANG"
  2. >>> a.isupper()
  3. True
  4. >>> a = "Wang"
  5. >>> a.isupper()
  6. False

21、isnumeric,检测字符串是否只由数字组成。这种方法是只针对unicode对象。

  1. >>> a = '12345'
  2. >>> a.isnumeric()
  3. True
  4. >>> a = 'w123'
  5. >>> a.isnumeric()
  6. False

22、isprintable,包含所有可打印字符的字符串。

23、isspace,检测字符串是否只由空格组成。

24、istitile,检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

25、join,将序列中的元素以指定的字符连接生成一个新的字符串,语法:str.join(sequence)

  1. >>> a = ['a', 'b', 'c', 'd']
  2. >>> ','.join(a)
  3. 'a,b,c,d'

26、ljust,返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串,语法:str.ljust(width[, fillchar])

  1. >>> a = 'wang'
  2. >>> a.ljust(10, '>')
  3. 'wang>>>>>>'

27、rjust,返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串,语法:str.rjust(width[, fillchar])

  1. >>> a = 'wang'
  2. >>> a.rjust(10, '<')
  3. '<<<<<<wang'

28、split,通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串,语法:str.split(str="", num=string.count(str)).

  1. >>> a = 'wang wang wang wang'
  2. >>> a.split('a', 3)
  3. ['w', 'ng w', 'ng w', 'ng wang']

29、rsplit

  1. >>> a
  2. 'wang wang wang wang'
  3. >>> a.rsplit('a', 3)
  4. ['wang w', 'ng w', 'ng w', 'ng']

30、splitlines,按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符,语法:str.splitlines([keepends])

  1. >>> a = 'ab c\n\nde fg\rkl\r\n'
  2. >>> a.splitlines()
  3. ['ab c', '', 'de fg', 'kl']
  4. >>> a.splitlines(False)
  5. ['ab c', '', 'de fg', 'kl']
  6. >>> a.splitlines(True)
  7. ['ab c\n', '\n', 'de fg\r', 'kl\r\n']

31、strip,用于移除字符串头尾指定的字符(默认为空格),语法:str.strip([chars])

32、rstrip,删除 string 字符串末尾的指定字符(默认为空格),语法:str.rstrip([chars])

33、lstrip,用于截掉字符串左边的空格或指定字符,语法:str.lstrip([chars])

34、maketrans,用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标,语法:str.maketrans(intab, outtab)

注:两个字符串的长度必须相同,为一一对应的关系。

35、translate,根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中,语法:str.translate(table[, deletechars]);

  1. >>> intab = "aeiou"
  2. >>> outtab = "12345"
  3. >>> trantab = str.maketrans(intab, outtab)
  4. >>> s = 'abcdef'
  5. >>> s.translate(trantab)
  6. '1bcd2f'
  7. >>> trantab
  8. {97: 49, 101: 50, 105: 51, 111: 52, 117: 53}

36、partition,用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。语法:str.partition(str)

37、rpartition

  1. >>> a = "http://www.baidu.com ://sina"
  2. >>> a.partition('://')
  3. ('http', '://', 'www.baidu.com ://sina')
  4. >>> a.rpartition('://')
  5. ('http://www.baidu.com ', '://', 'sina')

38、replace,把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。语法:str.replace(old, new[, max])

  1. str = "this is string example....wow!!! this is really string"
  2. print(str.replace("is", "was"))
  3. print(str.replace("is", "was", 3))

39、rfind,字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。语法:str.rfind(str, beg=0 end=len(string))

  1. str = "this is really a string example....wow!!!"
  2. substr = "is"
  3.  
  4. print(str.rfind(substr))
  5. print(str.rfind(substr, 0, 10))
  6. print(str.rfind(substr, 10, 0))
  7.  
  8. print(str.find(substr))
  9. print(str.find(substr, 0, 10))
  10. print(str.find(substr, 10, 0))

40、rindex,返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。语法:str.rindex(str, beg=0 end=len(string))

  1. str1 = "this is string example....wow!!!"
  2. str2 = "is"
  3.  
  4. print(str1.rindex(str2))
  5. print(str1.index(str2))

41、swapcase,用于对字符串的大小写字母进行转换。

42、title,返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())。

  1. str = "this is string example....wow!!!"
  2. print(str.title())

43、zfill,指定长度的字符串,原字符串右对齐,前面填充0。语法:str.zfill(width)

  1. str = "this is string example....wow!!!"
  2. print(str.zfill(40))

python 字符串操作二 内建函数的更多相关文章

  1. Python 字符串操作

    Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符 ...

  2. python字符串操作实方法大合集

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下:   #1.去空格及特殊符号 s.st ...

  3. 转 Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    转自: http://www.cnblogs.com/huangcong/archive/2011/08/29/2158268.html 黄聪:Python 字符串操作(string替换.删除.截取. ...

  4. Python 字符串操作及string模块使用

    python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...

  5. python字符串操作总结

    python中有各种字符串操作,一开始python有个专门的string模块,要使用需先import string.后来从python2.0开始,string方法改用str.method()形式调用, ...

  6. 『无为则无心』Python序列 — 17、Python字符串操作常用API

    目录 1.字符串的查找 @1.find()方法 @2.index()方法 @3.rfind()和rindex()方法 @4.count()方法 2.字符串的修改 @1.replace()方法 @2.s ...

  7. python 字符串操作。。

    #字符串操作 以0开始,有负下标的使用0第一个元素,-1最后一个元素,-len第一个元 素,len-1最后一个元素 name= "qwe , erw, qwe "print(nam ...

  8. Python 字符串操作,截取,长度

    1.字符串操作: 字符串长度: s = "; slen = len(s); 字符串截取: print s[:-:-] #截取,逆序隔1个取一个字符 print s[:-:-] #截取,逆序隔 ...

  9. python字符串操作、文件操作,英文词频统计预处理

    1.字符串操作: 解析身份证号:生日.性别.出生地等. 凯撒密码编码与解码 网址观察与批量生成 解析身份证号:生日.性别.出生地等 def function3(): print('请输入身份证号') ...

随机推荐

  1. javascript 总结(持续更新)

    1.jQuery对象转DOM对象. jQuery对象转DOM对象有两种方法,[index]和get(index). var $cr = $("#cr"); //jQuery对象 v ...

  2. LZMA C# SDK 结合 UPK 打包压缩 多目录 Unity3d实例

    上篇  LZMA C# SDK 子线程压缩与解压缩 Unity3d实例  讲了怎样使用 LZMA C# SDK 来对文件进行压缩与解压,当中提到 对于多目录能够先打包成 UPK 然后再 LZMA 压缩 ...

  3. configuration类详解

    hadoop中,组件配置是由Hadoop的Configuration的一个实例实现.(在源码包的org.apache.hadoop.conf中可以找到)先上个类图:这只是部分的,Configuraat ...

  4. JDK提供的几种常用的锁

    可重入互斥锁: Lock lock = new ReentrantLock() lock.lock(); ... lock.unlock(); 信号量: Semaphore semaphore = n ...

  5. MapReduce算法形式六:只有Map独自作战

    案例六:Map独自直接输出 之前一直没有用过这个map独自输出的模式,就算是输出一些简单的我也会经过一次reduce输出,但是,发现这个map输出的结果跟我预想的有点不一样,我一直以为shuffle的 ...

  6. java包和javax包的区别

    基本类库和扩展类库 一般的lang,util都放在java.包 servlet放在javax包 以前sun把java中的叫核心库,把javax中的叫扩展库.现在sun已经把java和javax中的都叫 ...

  7. HDU 2444 The Accomodation of Students(判断二分图+最大匹配)

    The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  8. 【bzoj3282】Tree

    LCT模板题: 话说xor和的意思是所有数xor一下: #include<iostream> #include<cstdio> #include<cstring> ...

  9. YTU 2452: 麦克劳林用于函数求值

    2452: 麦克劳林用于函数求值 时间限制: 1 Sec  内存限制: 128 MB 提交: 18  解决: 12 题目描述 泰勒公式是一个用函数在某点的信息描述其附近取值的公式.如果函数足够光滑的话 ...

  10. Swift(一)简单值

    Swift的源文件扩展名是.swift 按照国际惯例,学习一门新语言写的第一个程序都是在屏幕上输出一句 “Hello, world!” .在Swift里,一行代码就搞定了: 如果你以前写过C或者Obj ...