python 字符串转列表,列表转字符串,字符串替换

突然想把python基础再巩固巩固,所以写博客来记录一下,哪里不对,欢迎指正,下为正文。

 

1. 关于字符串: 字符串是不可变序列,拆分字符串是在拷贝的字符串上进行的,并不会改变原有序列

拆分字符串

  split方法:此方法可以接收两个参数,第一个参数是分隔符,默认是所有的空字符,包括 空格,换行 制表符等,拆分过程中会消耗分隔符,所以,拆分结果不包含分隔符。第二个参数 是一个数字,默认缺省 缺省时全分割,也可以用 maxsplit 来指定分割次数。

例如:

定义字符串:

s = 'Hello world'
l = """Hi there , my name is blankdog
do you like me """
#不传参数时,默认分隔符为所有空字符
split_nopam = s.split()
print(split_nopam)
#一个空格
split_pam = s.split(' ')
print(split_pam)
#两个空格
split_pam1 = s.split('  ')
print(split_pam1)
#使用world为分隔符,会看到,split会消耗掉分隔符,而不显示
split_pam2 = s.split('world')
print(split_pam2)
#空字符包含,空格,,多个空格,换行符等
l_split = l.split()
print(l_split)

split方法的第二个参数,指定分割次数,直接在第一个参数后面加一个数字(按位置传参),或者使用 maxsplit=num 来指定

#根据空格分割三段(按位置传参)
l_split_1 = l.split(' ',3)
print(l_split_1)
#根据空格分割三段(按位置传参)
l_split_1 = l.split(' ',3)
print(l_split_1)
#指定参数
l_split_2 = l.split(maxsplit=3)
print(l_split_2)
#错误用法,不按位置传参,直接传递分割几次数字参数
l.split(3)

split()方法是从左往右遍历,与之相对的是,rsplit()方法,从右往左便利,比较少用,会有奇效

l_split_3 = l.rsplit(maxsplit=2)
print(l_split_3)

拆分字符串还有一种方法, splitlines() 这个方法按照行来拆分字符串(默认分隔符 按照行('\r', '\r\n', \n')分隔),接受一个参数,True,或者 False,分别决定换行符是否被保留,默认为False,即不保留换行符

#保留换行符
s1 = """ab c 
d e f 
gh
"""
splitlines_True = s1.splitlines(True)
print(splitlines_True)
#不保留换行符
s2 = """ab c 
d e f 
gh
"""
splitlines_True = s2.splitlines(False)
print(splitlines_True)

列表转字符串

     join() 方法可以将列表链接为字符串

s_list = ['Hi','my','name','is','blank','dog']
#链接为以空格为分隔符 的字符串
print( ' '.join(s_list) )
#链接为以下划线为分隔符的字符串
print( '_'.join(s_list) )

2. 替换字符串 替换字符串的场景如下:大小写替换,特定字符转换,自定义片段替换.... 

#首个字母替换为大写
rep_s = 'hello world'
rep_res = rep_s.capitalize()
print(rep_res)
#所有单词首字母变为大写
rep_res1 = rep_s.title()
print(rep_res1)
#所有小写字母转换为大写
rep_res2 = rep_s.upper()
print(rep_res2)
#所有大写写字母转换为小写
rep_s1 = 'HELLO WORLD'
rep_res3 = rep_s1.lower()
print(rep_res3)
#所有大写替换为小写,小写替换为大写
rep_s2 = 'Hello World'
rep_res4 = rep_s2.swapcase()
print(rep_res4)
#所有tab建转换为空格,tab建默认空格数是8
rep_s3 = "Hello    World"
rep_res5 = rep_s3.expandtabs(tabsize=4)
print(rep_s3)
#替换字符串
rep_s4 = 'Hi World'
rep_res6 = rep_s4.replace('Hi','Hello')
print(rep_res6)
#替换字符串,可以指定替换次数
rep_s5 = 'Hi World Hi World Hi World'
rep_res7 = rep_s5.replace('Hi','Hello',2)
print(rep_res7)
#字符串开头空格,或者指定字符替换为空
rep_s6 = ' hello world'
rep_res8 = rep_s6.lstrip('h')
print(rep_res8)
#指定字符为空
rep_s6 = 'hello world'
rep_res8 = rep_s6.lstrip('h')
print(rep_res8)
#指定字符为空
rep_s6 = 'hello world'
rep_res8 = rep_s6.lstrip('h')
print(rep_res8)
#字符串末尾空格,或者指定字符替换为空
rep_s7 = 'hello world '
rep_res9 = rep_s7.lstrip()
print(rep_res9)
#字符串首位空格替换,或者指定字符替换
rep_s8 = ' hello world '
rep_res10 = rep_s8.strip()
print(rep_res10)
#删除首末位置的指定字符串
rep_s9 = '************hello world**********'
rep_res11 = rep_s9.strip('*')
print(rep_res11)

以上,为所学习关于字符串处理的基础,其他几种方式后续再来补充。

posted @ 2018-11-28 11:35  blankdog  阅读(9750)  评论(0编辑  收藏  举报