• python字符串操作


    1、去掉空格或特殊字符

    s = '   abc   '
    s1 = '   abcd,'
    print(s.strip())
    print(s1.strip(','))

    可以单独去掉一侧的空格或特殊字符,使用s.lstrip() 或s.rstrip()

    2、查看一个元素在字符串中出现多少次

    s = '   abc abc a   '
    print(s.count('a'))

    3、查找字符串,返回该元素所在的下标

    s = '   abc abc a   '
    print(s.index('a',4))

    print(s.find('a'))
    str.index(str, beg=0, end=len(string))中,其中str表示要检索的字符串,beg表示开始所以的位置,默认为0,end表示结束索引的位置,默认为字符串长度。
    index和find都可以实现该功能,index检索不到的时候
    会报错;find检索不到的时候返回-1
    str.finx(
    str, beg=0, end=len(string))用法跟index一样

     4、字符串替换

    s = '   abc abc a   '
    
    print(s.replace('a','d',2)) #a为被替换字符串,d为替换字符串,2为替换的个数

    若最后的2不写,则字符串中的a全部被替换

    5、字符串中的所有字母变成大写或小写字母

    s = '123abcABx'
    print(s.upper()) #字母全部转换为大写
    print(s.lower()) #字母全部转换为小写

    6、字符串首字母大写

    s = 'z123abcABx'
    print(s.capitalize())

    7、判断字符串以什么字母开头或以什么字母结尾,返回True或者false

    s = 'z123abcABx'
    
    print(s.startswith('z'))
    print(s.endswith('.jpg'))

    参数 beg 和 end 指定值,则在指定范围内检查。范围用下标标识。print (str.startswith( 'x', 2, 4 ))

    8、判断字符串是全大写字母或全部小写字母

    s = 'z123abcABx'
    
    print(s.islower())
    print(s.isupper())

    9、字符串的测试、判断函数,这一类函数在string模块中没有,这些函数返回的都是bool值

    • s.istitle() 判断是否是一个标题
    • s.isdigit() 判断是否为纯数字
    • s.isalpha() 判断是不是字母或者汉子,不能有数字或特殊符号,有的话则返回false
    • s.isalnum()字符串里面只要没有特殊字符,就返回true
    • s.isidentifier() 判断是不是一个合法的变量名,变量名不能以数字、特殊字符开头
    • s.isspace() 判断是否是空格

    10、字符串格式化

    s = 'insert into user VALUE  ({username},{password},' 
      '{addr},{email},{phone}); '
    
    news  = s.format(addr='北京',phone=1223,email='niu@qq.com',
             username='niu',password='123245')
    d = {'addr':'北京','username':'xiaohei','password':'12345','email':12,
     "phone":'sdfs'}
    s_map =s.format_map(d)
    print(s_map)
    print(news)

    Python支持格式化字符串的输出 ,  尽管这样可能会用刀非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中 . 字符串格式符和 C 语言的差不多 . 

         %c  格式化字符及其ASCII码
          %s  格式化字符串
          %d  格式化整数
          %u  格式化无符号整型
          %o  格式化无符号八进制数
          %x  格式化无符号十六进制数
          %X  格式化无符号十六进制数(大写)
          %f  格式化浮点数字,可指定小数点后的精度
          %e  用科学计数法格式化浮点数
          %E  作用同%e,用科学计数法格式化浮点数
          %g  %f和%e的简写
          %G  %f 和 %E 的简写
          %p  用十六进制数格式化变量的地址
    name = 'liul'
    password =123456
    print('我是%s,密码是%s'%(name,password))

    11、字符串补位, 原字符串右对齐,前面填充0

    num = '1'
    print(num.zfill(3))

    12、指定分隔符对字符串进行切片拆分

    s ='user1,user2,user3,user4,user5'
    print(s.split(','))

    s.split(‘,’) 指以逗号隔开,分隔后放进一个list中。按照某个字符串来分隔字符串,返回一个list。不传的时候默认为空格拆分。可设置分割的次数,次数用完之后后面的将不再拆分。

    13、 将列表中的元素以指定的字符连接生成一个新的字符串

    cars=['奔驰','奥迪','qq','宝马']
    res = ','.join(cars)
    print(','.join(cars))
    print(res)

    生成字符串,但是下面的写法要注意

    cars=['奔驰','奥迪','qq','宝马']
    cars_str = str(cars)
    print(cars_str)
    print('转成字符串后的第一个元素:',cars_str[0])

    cars_str是一个带字符串,第一个元素是[

    14、字符串切片

    切片取值是顾头不顾尾,取到尾巴的时候要加1,前面一个下标,后面一个下标,中间是冒号,下标从0开始时,前面可以不写

    str1 = '123abc098'
    
    print(str1[2:5])

    输出下标是2~下标是4的字符串元素

    str = ’1234567′

    a[:3] # [1,2,3] 即索引是 [0,3) => a[0]、a[1]、a[2] a[:-5] # [1,2] 等价于 a[:(-5+a中元素个数7)] = a[:2] = [1,2]
    a[:5:2] # [1,3,5] 先取前5个元素,然后按照间隔2取数
    a[:4:-1] # [7,6] 先看interval为负值,故从右往左取,取到下标为4的前一个为止,即能取到a[6]、a[5]
    a[:3:-2] # [7,5] 先看interval为负值,故从右往左取,取到下标为3的前一个为止,即能取到a[6]、a[5]、a[4],然后按照间隔2取数
    a[:-5:-1] # [7,6,5,4] 先看interval为负值,故从右往左取,取到下标为-5的前一个为止,即能取到a[-1]、a[-2]、a[-3]、a[-4]
    a[:10] # [1,2,3,4,5,6,7] 即索引是 [0,10),超过不报错
    a[:10:-1] # [] 先看interval为负值,故从右往左取,取到下标为10的前一个为止,但是从左到右取最大的下标也才是a[6],故返回[]
    a[:-100:-1] # [7,6,5,4,3,2,1] 先看interval为负值,故从右往左取,取到下标为-100的前一个为止,即能取到a[-1]、a[-2]、a[-3]、a[-4]、a[-5]、a[-6]、a[-7]
    a[::-1] # [7,6,5,4,3,2,1] 先看interval为负值,故从右往左取,取到头(因为end没有指定)为止,即能取到a[-1]、a[-2]、a[-3]、a[-4]、a[-5]、a[-6]、a[-7] ,该方法也是list反转的方法
    a[::2] # [1,3,5,7] 每隔2个元素取数
    a[3::2] # [4,6] 从a[3]=4开始,每隔1个元素取数
    备注:间隔2,指中间隔一个,间隔3,指中间隔2个

    15、字符串运算

    16、字符串反转

    str1 = '123abc098'
    print(str1[::-1])

    17、字符串比较       

    相等和包含:

    import operator as op
    str1 = 'hello'
    str2 = '0123456789'
    print(op.eq(str1,str2))
    str1 = 'hello'
    str2 = 'helloworld'
    if str1 == str2:
        print('相等')
    else:
        print('不相等')
    str1 = 'hello'
    str2 = 'helloworld'
    
    if str1 in str2:
        print(True)
    else:
        print(False)

     

    18、字符串连接

    str1 = '123abc098'
    str2 ='098cbd123'
    
    print(str1+str2)

    19、转义字符

     20、字符串居中,不够的可用后面指定的字符串补齐

    # 可指定需要用什么字符补齐,也可留空,显示为空格
    s1='123test'
    print(s1.center(30,'-')) 
    
    输出:
    -----------123test------------
  • 相关阅读:
    2018 秋招找工作总结
    Java 实现 LRU 缓存
    历时2个月,星云链DApp开发总结
    Java 版快速排序 + 最挫的优化
    MacOS 下防止 rm 命令误删
    Java使用Log日志系统(common-logging和log4j)
    IDEA+Maven+Spring+SpringMVC+SpringJDBC整合Demo
    Java简单实现并发编程
    设计模式学习笔记——单例模式
    Java获取网页内容
  • 原文地址:https://www.cnblogs.com/blueteer/p/9983506.html
Copyright © 2020-2023  润新知