python字符串操作

原创 Laughing  2018-01-27 01:00  阅读 62 次 评论 0 条

文章主要介绍python常见的字符串操作。没有什么深奥的知识,但是可以作为日后参考。

字符串索引

  1. # 字符串是一组字符,可以当作是一个数组,  
  2. s = 'apple'  
  3. print(s[0])  # a  
  4. print(s[-1])  # e  

使用for循环遍历字符串

  1. total = 0  
  2. for c in s:  
  3.     total += ord(c)  # ord()获取字符编码  
  4. print(total)  # 530  

根据字符编码获取字符

  1. print(chr(97))  # a  

字符串测试函数

# s.endswith(t) s以字符串t结尾,区分大小写
# s.startswith(t) s以字符串t开头,区分大小写
# s.isalnum() s只包含字符串或数字
# s.isalpha() s只包含字符串
# s.isdigit() s只包含数字字符
# s.isidentifier() s是否合法标识符
# s.islower() s是否只包含小写字符
# s.isnumeric() s只包含数字
# s.isprintable() s是否只包含可打印字符
# s.isspace() s只包含空白字符
# s.istitle() s是否符合头衔大小写
# s.isupper() s是否只包含大写字母
# s in t t是否包含s

  1. s = "Hello,World!"  
  2. print(s.endswith('!'))  # True  
  3. print(s.startswith('h'))  # False  
  4. print(s.startswith('H'))  # True  
  5. print(s.isalnum())  # True  
  6. print(s.isalpha())  # False  
  7. print(s.isdigit())  # False  
  8. print(s.isidentifier())  # False  
  9. print('name'.isidentifier())  # True  
  10. print(s.islower())  # False  
  11. print('-123'.isnumeric())  # False  
  12. print(s.isprintable())  # True  
  13. print(s.isspace())  # False  
  14. print(s.istitle())  # True  
  15. print('hello'.istitle())  # False  
  16. print(s.isupper())  # False  
  17. print('e' in s)  # True  

搜索函数

# s.find(t) 如果没有找到子字符串t,返回-1,否则返回t在s中的起始位置
# s.rfind(t) 如果没有找到子字符串t,返回-1,否则返回t在s中的最后一个的位置
# s.index(t) 如果没有找到子字符串t,返回ValueError异常,否则返回t在s中的起始位置
# s.rindex(t) 如果没有找到子字符串t,返回ValueError异常,否则返回t在s中的最后一个的位置

  1. print(s.find('e'))  # 1  
  2. print(s.rfind('l'))  # 9  
  3. # print(s.index('a')) #ValueError: substring not found  

改变字符串大小写

# s.capitalize() 将s[0]变成大写
# s.lower() 将字母全部改成小写
# s.upper() 将字母全部改成大写
# s.swapcase() 交换大小写
# s.title() 将字符串改成符合头衔大小写

设置格式函数

# s.center(n,ch) 包含n个字符串,其中s位于中间,两边使用ch填充
# s.ljust(n,ch) 包含n个字符串,其中s位于右边,左边使用ch填充
# s.rjust(n,ch) 包含n个字符串,其中s位于左边,右边使用ch填充
# s.format(ch1,ch2) s中包含{0}{1}的位置被ch1、ch2填充

  1. sformat = 'a'  
  2. print(sformat.center(3, '*'))  # *a*  
  3. print(sformat.ljust(3, '*'))  # a**  
  4. print('{0}'.format('a'))  # a  

字符串剥除函数

# s.strip(ch) 去除字符串s中开头和结尾的ch字符串
# s.lstrip(ch) 去除字符串s中开头的ch字符串
# s.rstrip(ch) 去除字符串s中结尾的ch字符串

  1. name = ' Gates Bill '  
  2. print(name.strip())  # 'Gates Bill'  
  3. print(name.lstrip())  # 'Gates Bill '  
  4. print(name.rstrip())  # ' Gates Bill'  

字符串拆分函数

# s.partition('ch') 将字符串s按照ch字符串分成三个部分,从左到右的顺序
# s.rpartition('ch') 将字符串s按照ch字符串分成三个部分,从右到左的顺序
# s.split('ch') 以ch为分隔符,将s进行分割,并返回分割后的列表
# s.rsplit('ch') 以ch为分隔符,将s进行分割,并返回分割后的列表,从s的右端开始搜索ch

  1. website = 'www.lisen.me'  
  2. print(website.partition('.'))   # ('www', '.', 'lisen.me')  
  3. print(website.rpartition('.'))  # ('www.lisen', '.', 'me')  
  4. print(website.split('.'))  # ['www', 'lisen', 'me']  
  5. print(website.rsplit('.'))  # ['www', 'lisen', 'me']  
  6. print('www\nlisen\nme'.splitlines())  # ['www', 'lisen', 'me']  

字符串替换

# s.replace(old,new) 将字符串s中的old子字符串全部替换成new
# s.expandtabs(n) 将字符串s中的每个制表符替换成n个空格

  1. print(website.replace('www.',''))  # lisen.me  
  2. print('Hello\tWorld'.expandtabs(20))  # Hello               World  

其他函数

#join 用于拼接一系列字符串
#s.count('ch') 统计字符串s中ch的出现次数
#s.maketrans('old','new')->t 创建一个转换表t,用于将s中的old替换成new
#s.translate(t) 按照转换表t将s中的字符进行替换

  1. print('-'.join(['Hello','World'])) # Hello-World  
  2. print(name.count('B')) #1  
  3. leet_table = name.maketrans('B','2')  
  4. print(name.translate(leet_table)) # Gates 2ill   

正则表达式

#xy? 代表x、xy
#x|y 代表x、y
#x* 代表' '、x、xx、xxx...
#x+ 代表 x、xx、xxx...

  1. import re  
  2. def is_funny(s):  
  3.     return re.match('x|y',s) != None  
  4. print(is_funny('x')) #True  
本文地址:https://www.lisen.me/python-string-manipulation.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情