胖蔡说技术
随便扯扯

Python 字符串

Python中字符串是一种名为序列的数据结构。python 字符串操作常用操作,如字符串的替换、删除、截取、赋值、连接、比较、查找、分割等。

  • 拼接
  • 分割
  • 查找
  • 对比
  • 赋值
  • 截取

拼接

字符串的拼接可以通过科学计算符(+,*),也可以通过内置方法join来实现。

>>>s='hello'*2                                         用乘法重叠
 >>>print(s)
 hellohello

 >>>s='hello'+'world'                                   用加号拼接
 >>>print(s)
 helloworld

 >>>a='world'                                           用join 拼接
 >>>s=''.join(a)
 >>>print(s)
 world


 

切片

Python作为序列的一种,当然也可以使用序列的切片操作。

>>>s = 'abcdefghijklmn'  
 >>>s[0:4]                        包括起始值(元素)不包括结束值,默认步进值为1 ,
 'abcd'
 >>>s[0:6:2]                      设置步进值为2 提取
 'ace'

 >>>s[4:]                          当一边没有指定时,就取到边界
 'efghijklmn'
 >>>s[:4]
 'abcd'

 >>>s[1:-1]                         从结尾提取,下标从-1开始
 'bcdefghijklm'
 >>>s[-8:]
 'ghijklmn'
 >>>s[:-8]
 'abcdef'
 >>>s[:]                            表示全选
 'abcdefghijklmn'
 >>>s[::-1]                         使其中的元素 倒叙排列
 'nmlkjihgfedcba'

 

分割

字符串分割返回一个列表对象,将目标内容连接。

>>>t='I love you more than I can say'
 >>>t.split(' ')                                              按空格切割
 ['I', 'love', 'you', 'more', 'than', 'I', 'can', 'say']
 >>>t.split('o')                                              按字符o切割
 ['I l','ve you m','re than I can say']

 >>>t.split(' ',3)                                    按空格切割 并指定切割次数,3次
 ['I','love','you','more than I can say']
 >>>t.rsplit(' ',2)                                   从右面开始切割,切割2次
 ['I love you more than I','can','say']

 >>>l='''江畔何人初见月
         江月何年初照人
         人生代代无穷已
         江月年年望相似'''
 >>>l.splitlines()                                     splitlines()  按行切割
 ['江畔何人初见月','江月何年初照人','人生代代无穷已','江月年年望相似']
 

查找

从一个字符串s中查找另一个字符串或字符第一次出现的下标位置,找不到返回 -1.

>>>s='abcdedjcjdlslk'
 >>>s1='abc'
 >>>s.find(s1)                       返回第一次出现abc的位置下标0
 0
 >>>s.find('j')                      返回第一次出现 j 的位置下标6
 6
 >>>s.find('j',2)                    从下标位置2开始查找,找到返回第一次出现的位置下标
 6
 >>>s.find('j',7)                    从下标位置7开始查找
 8
 >>>s.find('j',10)                   从下标位置10开始查找,没有返回-1
 -1
 
  • 赋值
#!/usr/bin/python3
 s = 'abcdef'
 s = list(s)
 s[1] = 'E'
 s = ''.join(s)
 print s

 s = s[0:1]+ 'E' +s[2:]
 print s

 s = s.replace('b','E')
 print s

 s = 'aEcdef'
 print s

 
  • 截取
mystring = '12345abcde'
 print('截取第1位到第5位的字符:', mystring[0:5])                 # 截取第1位到第5位的字符
 print('截取字符串的全部字符', mystring[:])                      # 截取字符串的全部字符
 print('截取第5个字符到结尾:', mystring[5:])                     # 截取第6个字符到结尾
 print('截取从头开始到倒数第3个字符之前:', mystring[:-3])        # 截取从头开始到倒数第3个字符之前
 print('截取第5个字符;', mystring[4])                            # 截取第5个字符
 print('截取倒数第3个字符:', mystring[-3])                       # 截取倒数第3个字符
 print('截取倒数第3位与倒数第1位之前的字符;', mystring[-3:-1])   # 截取倒数第3位与倒数第1位之前的字符
 print('截取倒数第三位到结尾:', mystring[-3:])                   # 截取倒数第三位到结尾
 print('逆序截取从倒数第1个到倒数第5个,步长为-1,默认begin为-1:', mystring[:-5:-1])   # 逆序截取从倒数第1个到倒数第5个,步长为-1,默认begin为-1
 print('逆序截取从倒数第1个到倒数第5个,步长为1,默认begin为0:', mystring[:-5:1])     # 逆序截取从倒数第5个到倒数第2个,步长为1,默认begin为0
 print('逆序截取全部字符:', mystring[::-1])                      # 逆序输出全部字符
 print('逆序截取倒数第3个到倒数第10个,步长为3:', mystring[-3:-10:-3])  #逆序截取倒数第3个到倒数第10个,步长为3

 

输出结果:

截取第1位到第5位的字符: 12345
 截取字符串的全部字符 12345abcde
 截取第5个字符到结尾: abcde
 截取从头开始到倒数第3个字符之前: 12345ab
 截取第5个字符; 5
 截取倒数第3个字符: c
 截取倒数第3位与倒数第1位之前的字符; cd
 截取倒数第三位到结尾: cde
 逆序截取从倒数第1个到倒数第5个,步长为-1,默认begin为-1: edcb
 逆序截取从倒数第1个到倒数第5个,步长为1,默认begin为0: 12345
 逆序截取全部字符: edcba54321
 逆序截取倒数第3个到倒数第10个,步长为3: c52

 Process finished with exit code 0

 
赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » Python 字符串
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏