python string模块

   1: #!/usr/bin/python
   2: import string
   3: funcs=[]
   4: vars=[]
   5: for element in dir(string):
   6:   name = "string.%s" %element                                                                                                         
   7:   if callable(eval(name)):
   8:     funcs.append(name)
   9:   else:
  10:     vars.append(name)

结果如下:

vars:  ['string.__builtins__', 'string.__doc__', 'string.__file__', 'string.__name__', 'string.__package__', 'string._idmap', 'string._idmapL', 'string._re', 'string.ascii_letters', 'string.ascii_lowercase', 'string.ascii_uppercase', 'string.digits', 'string.hexdigits', 'string.letters', 'string.lowercase', 'string.octdigits', 'string.printable', 'string.punctuation', 'string.uppercase', 'string.whitespace']
funcs: ['string.Formatter', 'string.Template', 'string._TemplateMetaclass', 'string._float', 'string._int', 'string._long', 'string._multimap', 'string.atof', 'string.atof_error', 'string.atoi', 'string.atoi_error', 'string.atol', 'string.atol_error', 'string.capitalize', 'string.capwords', 'string.center', 'string.count', 'string.expandtabs', 'string.find', 'string.index', 'string.index_error', 'string.join', 'string.joinfields', 'string.ljust', 'string.lower', 'string.lstrip', 'string.maketrans', 'string.replace', 'string.rfind', 'string.rindex', 'string.rjust', 'string.rsplit', 'string.rstrip', 'string.split', 'string.splitfields', 'string.strip', 'string.swapcase', 'string.translate', 'string.upper', 'string.zfill']

String的函数

函数功能描述实例
atofstring.atof(s) 如果是一个浮点数的字符串表示,则转换为浮点数。
否则异常。

>>> string.atof('1.233')
1.2330000000000001
>>> string.atof('1.233s')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/string.py", line 388, in atof
    return _float(s)
ValueError: invalid literal for float(): 1.233s

capitalizestring.capitalize(s)返回字符串s的一个副本,这个副本的第一个字符大写

>>> s='hello world'
>>> string.capitalize(s)
'Hello world'

capwordsstring.capwords(s)每个单词的首字母大写。

>>> s='hello world'
>>> string.capwords(s)
'Hello World'

>>> s='hello, world'
>>> string.capwords(s)
'Hello, World'

center通过左右填充达到指定长度,并使得给定字符串在中间位置。不会截断。
如果设定长度小于字符串长度,返回字符串。

>>>str = 'test'
>>>print str.center(1)
>>>print str.center(10) 

test
   test

count包含的字符串的个数

>>> str = 'test'
>>> str.count('t')
2
>>> str.count('a')
0

expandtabs调整tab的宽度。

>>> str = 'test\ta'
>>> print str
test    a
>>> str.expandtabs(2)
'test  a'

>>> str.expandtabs(0)
'testa'

find从左侧开始找到的位置的下标(即从左往右第一个match的),找不到返回-1

>>> str = 'test'
>>> str.find('se')
-1
>>> str.find('es')
1

index类似于index,但是找不到会抛出异常

>>> str = 'test'
>>> str.index('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> str.index('e')
1

join将list或元组拼接成字符串,默认使用空格拼接

>>> str1 = 'test'
>>> str1.join(' ')
' '
>>> str1.join('world')
'wtestotestrtestltestd'
>>> string.join('world')
'w o r l d'

joinfields和join几乎等价。注意string对象没有该方法

string.joinfields('world')
'w o r l d'
>>> str1.joinfields('world')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'joinfields'

ljust输出width个字符,不足使用空格。左对齐输出。

>>> str1.ljust(1)
'test'
>>> str1.ljust(2)
'test'
>>> str1.ljust(3)
'test'
>>> str1.ljust(6)
'test  '
>>> string.ljust(str1, 2)
'test'
>>> string.ljust(str1, 6)
'test  '

lower小写表示

>>> str = 'Hello World'
>>> str.lower()
'hello world'

lstrip去除左侧的,默认为空白符

>>> str = '  Hello World  '
>>> str.lstrip()
'Hello World  '
>>> str = '  \tHello World  '
>>> str.lstrip()
'Hello World  '
>>> str.lstrip('e')
'  \tHello World  '
>>> str = 'eeee  \tHello World  '
>>> str.lstrip('e')
'  \tHello World  '

maketrans返回一个256个字符组成的翻译表,其中from中的字符被一一对应地转换成to,所以from和to必须是等长的。否侧抛出异常

>>> str1 = 'abcdef'
>>> str2 = 'hijklm'
>>> string.maketrans(str1,str2)
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`hijklmghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'


replace字符串替换。

>>> str1.replace('t','h')
'hesh'
>>> str1 = 'test'
>>> string.replace(str1, 'te','ha')
'hast'
>>> string.replace(str1, 't','h')
'hesh'
>>> str1.replace('t','h')
'hesh'

rfind和find类似,只是返回的是最右侧位置的下标。即从左往右最后一个match的。

>>> str = 'test'
>>> str.find('es')
1
>>> str.rfind('es')
1
>>> str = 'testtest'
>>> str.find('es')
1
>>> str.rfind('es')
5

rindex类似于index,从右侧开始 
rjust类似于rjust,右对齐输出。

>>> str1.rjust(1)
'test'
>>> str1.rjust(2)
'test'
>>> str1.rjust(3)
'test'
>>> str1.rjust(6)
'  test'
>>> string.rjust(str1, 2)
'test'
>>> string.rjust(str1, 6)
'  test'

rsplit
string.rsplit(s[, sep[, maxsplit]])
类似于split,区别为指定maxsplit时不同。

>>> str1.split(' ',2)
['This', 'is', 'a test']
>>> str1='This is a test'
>>> str1.split(' ',2)
['This', 'is', 'a test']
>>> str1.rsplit(' ',2)
['This is', 'a', 'test']
>>> str1.rsplit(' ',1)
['This is a', 'test']
>>> str1.split(' ',1)
['This', 'is a test']

rstrip类似于rstrip,去除右侧的符号, 
split字符串切分,默认使用空白

>>> str1 = 'test'
>>> str1.split()
['test']
>>> str1.split('t')
['', 'es', '']
>>> str1.split('e')
['t', 'st']
>>> str1 = 'test one'
>>> str1.split()
['test', 'one']

splitfields等价于split,string对象没有该方法

>>> str1 = 'this is a test'
>>> string.splitfields(str1)
['this', 'is', 'a', 'test']
>>> string.splitfields(str1,' ',2)
['this', 'is', 'a test']

strip去除两侧的空白符

>>> str = '  this is a test  '
>>> str.strip()
'this is a test'
>>> str.lstrip()
'this is a test  '
>>> str.rstrip()
'  this is a test'

swapcase字符串的大小写反转。

>>> str = 'This is a Test'
>>> str.swapcase()
'tHIS IS A tEST'

>>> str = 'This is 1  Test'
>>> str.swapcase()
'tHIS IS 1  tEST'

translate使用maketrans产生的翻译表进行翻译
类似于字符串替换

>>> str1 = 'abcdefg'
>>> str2 = 'hijklmn'
>>> table = string.maketrans(str1,str2)

>>> str1.translate(table)
'hijklmn'
>>> str2.translate(table)
'hijklmn'

>>> str3 = 'opqrstu'
>>> str3.translate(table)
'opqrstu'

>>> str4 = 'hello world'
>>> str4.translate(table)
'hlllo worlk'

upper转为大写

>>> str = 'this is a Test'
>>> str.upper()
'THIS IS A TEST'

zfill用0在左侧填充字符串到指定长度

>>> str = 'hello world'
>>> str.zfill(10)
'hello world'
>>> str.zfill(20)
'000000000hello world'

 

refer:http://www.cnblogs.com/john2000/archive/2010/07/28/1787108.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值