字符串

join() map() split() rsplit() splitlines() partiton() rpartition() upper() lower() swapcase() captalize() title() center() ljust() rjust() zfill() replace() strip() index() rindex() count() find() rfind() startswith() endswith() isalnum() isalpha() isnumeric() isdigit() isidentifier() isspace()

  • 不可变对象

  • 可以将其他对象转化成字符串

  • 在内存中连续存在,属于顺序表

  • 可以索引,但是索引不能超界,可以迭代,例如:

    str_a = 'slfjlsvnemgekdlsd'
    for c in str_a:
    print(c) # 打印出来's' 'l' 'f' 等等单个字符
    • ‘a’.join(iterable) 用’a’把iterable中的字符串元素连在一起,iterable是可迭代对象,但是可迭代对象中的每一个元素都要是字符串才可以,例如:

    t1 = ('a','b','c','d')
    '&'.join(t1) # 返回'a&b&c&d’ ,不会报错 t2 = ['a','b',5,'d']
    #.join(t2) # 会报错,因为t1中的5不是字符串
    • map(str,range(5)) 把可迭代对象转换成字符串,但是是惰性求值,返回的也是一个可迭代对象,直接打印出来看不出内容,必须将其转换成其他不是惰性求值的结构才可能打印出内容

    t1 = (1,2,3,4,5)
    x = map(str,t1) # 这里将t1中的每个元素都转换成str类型
    print(list(x)) # 打印出来得到,['1','2','3','4','5']
    • ‘a’+‘b’ [1]+[2] ‘a’ *5 [‘ab’] * 3

    'a'+'b'  # 返回'ab'
    [1]+[2] # 返回[1,2]
    'a' * 5 # 返回'aaaaa'
    ['ab'] * 3 # 返回['ab','ab','ab']
    • split() 默认按照空白字符切割,如果多个空白字符连续,认为是一个,立即返回一个列表

    • rsplit() 默认按照空白字符串切割,从右边开始切割,返回的字符串不改变原来顺序,可以设置maxsplit = x,确定切几刀

    'a         b'.split()  # 返回['a','b']
    'a \t \r\n y '.split() # 返回['a','y']
    'a \t \r\n y'.split('y') # 按照'y'来切割,返回['a \t \r\n ','']
    'a y'.split(' ',maxsplit = 2) # 按照' '来切,切2刀,返回['a','','',' y']
    'alfjlajggd'.rsplit('g',maxsplit = 1) # 按照'g'字符串进行切割,最大切一刀,返回['alfjlajg','d']
    • splitlines() 按照换行来切

    '\nabc'.splitlines()  # 返回['','abc']
    '\nabc\n'.splitlines() # 返回['','abc'],字符串最后如果是换行符不切,开头是换行符切
    '''
    asdf
    d
    '''.splitlines() # 返回['','asdf','d'] 开头换行了切,末尾换行了不切
    '''\
    asdf
    d
    '''.splitlines() # 返回['asdf','d'] 在\后面换行则不需要切
    • partition(‘x’) 'x’不能省略,按照’x’进行切割,只能切一刀,返回一个三个元素的元组

    • rpartition(‘x’) 从右开始切割

    'sdfafg'.partition('f')  # 返回('sd','f','afg')  中间元素就是指定的切割符
    'sdfafg'.rpartition('f') # 返回('sdfa','f','g')
    • ‘abbc’.upper() == str.upper(‘abbc’) ‘Afsl’.lower() ‘FdsGdsl’.swapcase() ‘user-agent’.captalize() ‘user-agent’.title()

    'abbc'.upper() == str.upper('abbc')   # 返回'ABBC'
    'Afsl'.lower() # 返回'afsl'
    'FdsGdsl'.swapcase() # 返回'fDSgDSL'
    'user-agent'.captalize() # 返回'User-agent'
    'user-agent'.title() # 返回'User-Agent'
    • ‘abc’.center(10,’%’) 十个位置放’abc’,空余位置由’%'填充,'abc’居中,如果不指定填充多余位置的字符,则由空白字符来填充多余的位置

    • ‘abc’.ljust(10,’&’) 十个位置放’abc’,空余位置由’&'填充,'abc’左对齐,如果不指定填充多余位置的字符,则由空白字符来填充多余的位置

    • ‘abc’.rjust(10,’&’) 十个位置放’abc’,空余位置由’&'填充,'abc’右对齐,如果不指定填充多余位置的字符,则由空白字符来填充多余的位置

    • ‘abc’.zfill(10) 十个位置放’abc’,空余位置由’0’填充,'abc’右对齐

    • ‘a,b’.replace(’,’,’ ‘) 返回新字符,把’,‘换成’ ’

    'abc'.center(10,'$')  # 返回'$$$abc$$$$'
    'abc'.center(10) # 返回' abc '
    'abc'.ljust(10,'%') # 返回'abc%%%%%%%'
    'abc'.ljust(10) # 返回'abc '
    'abc'.rjust(10,'@') # 返回'@@@@@@@abc'
    'abc'.rjust(10) # 返回' abc'
    'abc'.zfill(10) # 返回'0000000abc'
    'a,b'.replace(',',' ') # 返回'a b'
    • strip() 默认去掉字符串的两端空白字符,返回新字符串,如果指定参数怎从两端起去掉指定参数字符,知道没有对应参数停止

    'i am very very good'.strip('i doa')  # 返回'm very very g'
    ' abc '.strip() # 返回'abc'
    • index(value) count(value) find(value) index找不到返回valueerror,找到返回正索引,count找不到返回0,找到了返回出现次数,find找不到返回-1,找到了返回正索引,都可以指定起点和终点,如果只指定一个起点,默认终点是最后,正负索引都可以,但是要求开始位置在结束位置左侧

    'sljfjld'.index('a')  # 返回valueerror  没找到
    'sljfjld'.index('s',1,-3) # 返回valueerror,虽然有's',但是没在起始和终点区间内
    'sljfjld'.index('s') # 返回正索引0
    'sljfjld'.count('l') # 返回'l'出现的次数2
    'sljfjld'.count('s',1,-3) # 返回's'出现的次数0
    'sljfjld'.index('a',1,4) # 找不到返回-1
    • startswith(value) endswith(value) 验证字符串是否以value开头或者结束,返回bool值,可以指定区间

    'adkjfls'.startswith('abc')   # 返回False
    'abcsdlfj'.startswith('abc') # 返回True
    'abcsdlfj'.startswith('abc',1,4) # 返回False
    'adkjfls'.endswith('abc') # 返回False
    'abcsdlfj'.endswith('fj') # 返回True
    'abcsdlfj'.endswith('fj',-4,-2) # 返回False
    • ‘abc123’.isalnum() 验证是否只有字母和数字,’adsa123‘.isnumeric() 验证是否只有数字 , ‘df213’.isdigit() 验证是否只有数字 ‘sfas24’.isidentifier() 验证是否是标识符 ’ '.isspace() 验证是否只包含空白字符串
    'abc23'.isalnum()  # 返回True
    '234234'.isnimeric() # True
    '234234'.isdigit() # True
    'stu_tom'.isidentifier() # True
    ' d'.isspace() # False
    ' '.isspace() # True

总结

前面开头讲了字符串是不可变对象,而我们这些内置函数绝大多数都有返回值,所以这些函数的返回值都是新生成了一个字符串,对原字符串没有影响,因为原字符串无法修改

python——字符串操作函数的更多相关文章

  1. Python 字符串操作函数一

    #-*- coding:utf-8 -*- strword = "i will fly with you , fly on the sky ." #find print(strwo ...

  2. Python 字符串操作函数二

    #-*- coding:utf-8 -*- line = "l want watch movie with you ." print(line.center(50)) print( ...

  3. Python中字符串操作函数string.split('str1')和string.join(ls)

    Python中的字符串操作函数split 和 join能够实现字符串和列表之间的简单转换, 使用 .split()可以将字符串中特定部分以多个字符的形式,存储成列表 def split(self, * ...

  4. python字符串操作实方法大合集

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下:   #1.去空格及特殊符号 s.st ...

  5. Lesson12——NumPy 字符串函数之 Part1:字符串操作函数

    NumPy 教程目录 1 NumPy 字符串函数 以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作. 它们基于 Python 内 ...

  6. JavaScript中常见的字符串操作函数及用法

    JavaScript中常见的字符串操作函数及用法 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信 ...

  7. Python 字符串操作

    Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符 ...

  8. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  9. C语言的常用字符串操作函数(一)

    一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...

随机推荐

  1. 从一道ctf看php反序列化漏洞的应用场景

    目录 0x00 first 前几天joomla爆出个反序列化漏洞,原因是因为对序列化后的字符进行过滤,导致用户可控字符溢出,从而控制序列化内容,配合对象注入导致RCE.刚好今天刷CTF题时遇到了一个类 ...

  2. Java动手动脑第四讲课堂作业

    动手动脑1 完全“手写代码实现”随机数生成 纯随机数发生器

  3. ubuntu使用uwsgi+nginx部署django

    ls -lha export WORKON_HOME=~/venv source /usr/local/bin/vitualenvwrapper.sh VIRTUALENVWRAPPER_PYTHON ...

  4. VUE--插值的操作

    一.vue常见的指令 v-once:保留第一次渲染结果 v-html :把html代码解析,只显示内容 v-pre :原样输出 v-cloak :解决文本闪烁问题 v-text :显示文本 二.v-b ...

  5. 使用ipython %matplotlib inline

    首先讲讲这句话的作用,matplotlib是最著名的Python图表绘制扩展库,它支持输出多种格式的图形图像,并且可以使用多种GUI界面库交互式地显示图表.使用%matplotlib命令可以将matp ...

  6. CentOS 7.6 Telnet服务搭建(Openssh升级之战 第一任务备用运输线搭建)

    (以下内容亲手完成,如果需要搬走记得把写博的小白的名字和邮箱一起搬走) 出来玩(学习),总是要还的! 有不明的问题的时候,都来博客园转转,总能找到答案或者灵感,开博3个月都没发一篇帖(不晓得管理员有何 ...

  7. 渗透测试-基于白名单执行payload--Pcalua

    0x01 Pcalua简介 Windows进程兼容性助理(Program Compatibility Assistant)的一个组件. 说明:Pcalua.exe所在路径已被系统添加PATH环境变量中 ...

  8. [POI2015]PIE

    题目描述 一张n*m的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色.你有一个a*b的印章,有些格子是凸起(会沾上墨水)的.你需要判断能否用这个印章印出纸上的图案.印的过程中需要满足以下要求:( ...

  9. vue3.0 + ueditor

    公司有个需求,需要做个发送邮件的模版(富文本对于模版的扩展性更好吧) 关于富文本,也找了一些好看且支持vue的,但是功能都没有百度全面 反正这个系统也是自己人用,颜值无所谓了 关于vue2.0+ued ...

  10. python编程系列---最详细的讲解进程与线程的关系

    进程与线程 先引入三个比如: cpu---公司 进程---办公室   线程---程序员(我们)   全局变量,内存等资源---公司提供的电脑,桌子等 进程:  操作系统分配程序执行资源的单位 线程:进 ...