python - 文本序列类型

一、字符串操作函数

1.      upper
2.      lower
3.      title
4.      swapcase
5.      capitalize
6.      count('x')
7.      len(string)
8.      find
9.      index
10.     center
11.     ljust
12.     rjust
13.     zfill
14.     strip
15.     rstrip
16.     lstrip
17.     repalce
18.     join
19.     split
20.     splitlines 
21.     eval

二、字符串判断函数

1.      startswith
2.      endswith
3.      isupper
4.      islower
5.      isalnum
6.      isalpha
7.      isdigit
8.      isnumeric
9.      isdecimal
10.     isspace
11.     istitle

三、str模块函数

映射表 (str不用导入,直接用)       
1.  str.maketrans
2.  translate

四、string模块

import string

1.  string.whitespace
2.  string.ascii_letters
3.  string.ascii_uppercase
4.  string.ascii_lowercase
5.  string.digits
6.  string.octdigits
7.  string.hexdigits
8.  string.printable
9.  string.punctuation

一、字符串操作函数


eval(expression[,globals[,locals]])

功能:将字符串当成有效的表达式来求值,并返回结果
参数:    
expression: -- 字符串类型的表达式    
globals: --变量作用域,全局命名空间,如果被提供,则必须是一个字典**对象**    
locals: --变量作用域,局部命名空间,如果被提供,可以是任何映射**对象**
返回值:
    表达式的结果

expression字符串的使用

>>>string1 = "[1,'213',{12:'sdf'},'2324']"
>>>result  = eval(string1)
>>>print(result,type(result))

[1, '213', {12: 'sdf'}, '2324'] <class 'list'>

globals参数的使用

>>> globals1 = {'ac':1,'b':2}    #注意字典里的变量a和b都是字符串!
>>> string2 = 'ac+b'
>>> result1 = eval(string2,globals1)
>>> print(result1,type(result1))
3 <class 'int'>

locals参数的使用

>>>globals3 = {'var1':23,'var2':34}
>>>locals3 = {'t':878,'u':97}
>>>string3 = 'var1-var2 +t/u'
>>>results = eval(string3,globals3,locals3)
>>>print(results,type(results))    #自我感觉globals,locals就是引入变量的作用域
-1.9484536082474229 <class 'float'>

upper()

    功能:将字符串小写字母变为大写字母

    返回值:大写字符串

>>>var1 = 'i dream my painting,and then i paint my dream.'
>>>result = var1.upper()    ###注意是在字符串后面添加upper()函数,不是在upper()函数里面添加字符串。
>>>print(result)
I DREAM MY PAINTING,AND THEN I PAINT MY DREAM.

lower()

    功能:将字符串大写字母变为小写字母

    返回值:小写字符串

>>>str1 = 'WHEN I WAS YOUNG,NOSTALGIA WAS A TINY,TINY STAMP'
>>>result = str1.lower()
>>>print(result)
when i was young,nostalgia was a tiny,tiny stamp

title()

    功能:将字符串语句里的单词开头字母大写

    返回值:单词开头字母大写的字符串

>>>str1 = "Dont't you feel any compunction?"
>>>result = str1.title()
>>>print(result)
Dont'T You Feel Any Compunction?

swapcase()

    功能:将字符串大小写互换

    返回值:大小写互换之后字符串

>>>str1 = "Life's like a movie,write your own ending,Keep believing,keep pretending."
>>>results = str1.swapcase()
>>>print(results)
lIFE'S LIKE A MOVIE,WRITE YOUR OWN ENDING,kEEP BELIEVING,KEEP PRETENDING.

capitalize()

    功能:将段落的一个字母大写

>>>print("love doesn't end,just because we dont't see each other.".capitalize())
Love doesn't end,just because we dont't see each other.

count()

    功能:统计某个字符或字符串出现的次数

>>>str1 = 'sdfsdgsdgsdgdsgdsgd'
>>>print(str1.count('s'))
6

len()

>>>str1 = 'abcdefghijhlmnopqrstuvwxyz'
>>>result = str1.find('d')
>>>print(result)
>>>result1 = str1.find('4')
>>>print(result1)
3
-1

    功能:统计字符串的长度

>>>str1 = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
>>>print(len(str1))#注意字符串放在len()函数里进行计算。
38

find()

    功能:查找某个第一个符合字符或字符串的索引

    返回值:查询到返回索引值,查询不到返回-1,不会报错

index()

    功能:查找某个第一个符合字符或字符串的索引

    返回值:查询到返回索引值,查询不到报错

>>>str1 = 'abcdefghijhlmnopqrstuvwxyz'
>>>result = str1.index('d')
>>>print(result)
>>>result1 = str1.index('4')
>>>print(result1)
3

center(未来字符宽度,空白填充字符)

     功能:指定字符串长度,并居中,空余指定长度超过字符长度时,可以指定用某个字符代替 

     参数:center(未来字符宽度,空白填充字符),字符宽度必须指定,空白填充字符没有时,默认用空格代替

>>>str1 = '   sefs  dsfd gs dg d gsdg    dsgsdgsdg'
>>>result = str1.center(100,'*')
>>>result1 = str1.center(100)
>>>print(result)
>>>print(result1)
******************************   sefs  dsfd gs dg d gsdg    dsgsdgsdg*******************************
                                 sefs  dsfd gs dg d gsdg    dsgsdgsdg  

ljust()

    功能:向左对齐 ,参数同上

rjust()

    功能:向右对齐,参数同上

zfill(未来字符宽度)

    功能:用0填充空白位置

>>>str1 = 'sfsdjflsdjg dsg'
>>>print(str1.zfill(20))
00000sfsdjflsdjg dsg

strip() rstrip() lstrip()

    功能:strip()---去除字符串左右两侧的空白

               rstrip()---去除字符串右侧的空白

               lstrip()---去除字符串左侧的空白

>>>str1 = '                        dsgdgs sdgsd                       '
>>>result = str1.strip()
>>>print(result)
>>>restlt1 = str1.rstrip()
>>>print(result1)
>>>result2 = str1.lstrip()
>>>print(result2)
dsgdgs sdgsd
                                 sefs  dsfd gs dg d gsdg    dsgsdgsdg                               
dsgdgs sdgsd 

replace()

    功能:使用指定字符或字符串,替换原字符串中的字符或者字符串

    参数:replace(old,new),old:被替换的字符串,new:替换字符串。

>>>str1 = 'abadaefghrjklmnopqistuvwxyz'
>>>result = str1.replace('a','1')
>>>print(result)
1b1d1efghrjklmnopqistuvwxyz

join()

    功能:使用指定字符或者字符串,拼接由字符串组成的数组,返回字符串

>>>list1 = ['sdgsdg','sxdgd','lioncj']
>>>result = '**'.join(list1)
>>>print(result)
sdgsdg**sxdgd**lioncj

split()

    功能:使用指定字符或字符串将原字符串切割

    返回值:由切割后的字符串组成的列表。

>>>str1 = 'sligne234in kdghu98 ifdsighdsalgajdngdglkajdnghasdgahds'
>>>result = str1.split('s')
>>>print(result)
>>>str2 = 'sdlgaaingdksgoiaalonlknaaoonmgdoaaaoidngfs'
>>>result1 = str2.split('aa')
>>>print(result1)
['', 'ligne234in kdghu98 ifd', 'ighd', 'algajdngdglkajdngha', 'dgahd', '']
['sdlg', 'ingdksgoi', 'lonlkn', 'oonmgdo', 'aoidngfs']

splitlines([keepends])

    功能:将字符串按照行分割 

    参数:keepends -- 在输出结果里是否去掉换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。 

    返回值:返回一个包含各行作为元素的列表 

    ####对文件读取后处理数据很有用。

>>>str1 = 'skdjigaaiogjsna\noaooignaao\r\ngiriii\rladiiaaijngslkdnjaasdifnmd'
>>>sresult= str1.splitlines()
>>>sprint(result)
>>>sresult = str1.splitlines(True)
>>>sprint(result)
['skdjigaaiogjsna', 'oaooignaao', 'giriii', 'ladiiaaijngslkdnjaasdifnmd']
['skdjigaaiogjsna\n', 'oaooignaao\r\n', 'giriii\r', 'ladiiaaijngslkdnjaasdifnmd']

二、字符串判断函数


startswith()

    功能:判断字符串是否由指定字符开头

>>>aa = 'abdcda'
>>>print(aa.startswith('a'))
True

endswith()

    功能:判断字符串是否由指定字符结尾

str = 'sdhguidgnuh'
print(str.endswith('h'))
True

isupper() \ islower()

    功能:判断字符串是否都是大写或者小写

>>>cc = 'ldigndssdf'
>>>print(cc.isupper())
>>>print(cc.islower())
>>>dd = 'IDUGFSK'
>>>print(dd.isupper())
>>>print(dd.islower())
False
True
True
False

isalnum()

    功能:判断字符串是否都是由数字、字母或汉字构成

>>>str1 = 'sduidenhgfsidgiideg凯斯厄了848487942'
>>>print(str1.isalnum())
>>>str2 = '2943l..8yw984eyth'
>>>print(str2.isalnum())
True
False

isalpha()

    功能:判断字符串是否全是由字母或汉字构成

>>>str1 = 'sdhugiksdinbgnsg8987.。--*&…………¥¥#'
>>>print(str1.isalpha())
>>>str2 = 'sieghjdhgisdh'
>>>print(str2.isalpha())
>>>str3 = 'isdnginside是'
>>>print(str3.isalpha())
False
True
True

isdigit() \ isnumeric()

    功能:判断字符串是否都是由数字构成

>>>str1 = '284755'
>>>print(str1.isdigit())
>>>print(str1.isnumeric())
>>>str2 = 'iudg98766656565'
>>>print(str2.isdigit())
>>>print(str2.isnumeric())
True
True
False
False

isspace()

    功能:判断字符串是否都是由空白字符构成,如空格,回车。

>>>aa = '     '
>>>print(aa.isspace())
True

istitle()

   功能:如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.

>>>str1 = 'Ading SDGd Eindgf EG'
>>>print(str1.istitle())
>>>str1 = 'Ading Edinfg Dinfd'
>>>print(str1.istitle())
False
True

str.maketrans()

str也可以用''代替。
功能:制作映射表
参数:一个参数时,必须为字典格式;
     两个参数时:第一个--要被替换的字符,第二个--替换字符;
     三个参数时:第三个参数表示要删除的字符。

translate

    功能:应用映射表

    str.maketrans()只能用于单个字符的替换操作,优势是可以一次替换多个字符。(只能替换单个字符)

    而replace()方法一次只能替换一种字符或字符串,优势是可以替换长字符串(长度大于2的)


>>>table = str.maketrans('abcdefg','1234567')
>>>str1 = 'seisnadksndadfisnfghgosndfgasiesdkfadewefr'
>>>result = str1.translate(table)
>>>print(result)
s5isn14ksn4146isn67h7osn4671si5s4k6145w56r     #对应替换


>>>table = str.maketrans('abcdefg','1234567','as')   #第三个参数是要删除的字符
>>>str1 = 'hhhseisnadksndadfisnfghhhhgosndfgasiesdkfadewefrjjhhj'
>>>result = str1.translate(table)
>>>print(result)
hhh5in4kn446in67hhhh7on467i54k645w56rjjhhj


>>>table1 = ''.maketrans({'a':'111','b':'222','c':'333'})  #字典格式时,key的长度必须为1.
>>>str1 = 'lisgaaaigslbbblingsccclsidn'
>>>result = str1.translate(table1)
>>>print(result)
lisg111111111igsl222222222lings333333333lsidn

string.whitespace

    功能:包含所有ASCII中可当作空白的字符集合而成的字符串。这包括字符间的空间、 tab、 换行符、 return、 换页符和垂直制表符。

string.ascii_letteres

    功能:获取ascii码中的所有字母表

>>> import string
>>> print(string.ascii_letters)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

string.ascii_uppercase

    功能:获取ascii码中的所有大写字母

>>> import string
>>> print(string.ascii_uppercase)
ABCDEFGHIJKLMNOPQRSTUVWXYZ

string.ascii_lowercase

    功能:获取ascii码中的所有小写字母

>>> import string
>>> print(string.ascii_lowercase)
abcdefghijklmnopqrstuvwxyz

string.digits

    功能:获取ascii码中所有10进制的数字字符

string.octdigits

    功能:获取八进制所有数字字符

>>> import string
>>> print(string.octdigits)
01234567

string.hexdigits

    功能:获取十六进制的所有数字字符

>>> import string
>>> print(string.hexdigits)
0123456789abcdefABCDEF

string.printable

    功能:获取所有可见字符

>>> import string
>>> print(string.printable)
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

string.punctuation

    功能:获取所有标点符号

>>> import string
>>> print(string.punctuation)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

上一篇:sort函数的使用


下一篇:leetcode-435. 无重叠区间