python3 字符串 常用方法

1. find

  • find方法可以在一个较长的字符串中查找 子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回 -1
    # 不添加 起始位置 和 结束位置
    In [1]: test_str = 'python itcast hello'
    In [2]: test_str.find('hello')
    Out[2]: 14
    
      # 添加 起始位置 和 结束位置   注意:左闭右开
      In [1]: test_str = 'python itcast hello'
      In [2]: test_str.find('on',1,11)
      Out[2]: 4
    
      In [3]: test_str.find('on',1,3)
      Out[3]: -1
    

2. rfind

  • 和 find类似,只不过是 从右往左 查找。

3. index

  • 同 find一样,不同的是,如果没有找到则返回ValueError异常。
  • 从右往左 查找 使用 rindex 方法。

3. count

  • 在一个较长的字符串中 查找 子字符串 出现的次数,并且返回这个数值。
      In [1]: test_str = 'python itcast itcast'
      In [2]: test_str.count('itcast')
      Out[2]: 2
    
      和find方法类似,也可以指定 起始位置 和 结束位置:
    
      In [1]: test_str = 'python itcast itcast'
      In [2]: test_str.count('itcast',5,13)
      Out[2]: 1
    

4. replace

  • 把 前面的 字符串 替换成 后面的,返回值为替换后的字符串,不修改原来的字符串。
      In [1]: test_str = 'python itcast itcast'
      In [2]: test_str.replace('itcast','123',1)
      Out[2]: 'python 123 itcast'
    
  • 最后一个参数,代表最多替换的个数,如果不写,默认 全部替换。

5. expandtabs

  • 把字符串中的 tab 符号('\t')转为空格,默认 一个tab 8个空格。
      In [31]: a = "this is\tstring example....wow!!!"
    
      In [32]: a.expandtabs()
      Out[32]: 'this is string example....wow!!!'
    
      说好的 8个空格呢?因为 this is 占了7个 空格。
    
      接着看:
      In [33]: a = "this is\n\tstring example....wow!!!"
      In [34]: a.expandtabs()
      Out[34]: 'this is\n        string example....wow!!!'
      
      如果 \t 前面是 换行符,则 \t 就是 8个空格。
    

6. split

  • 把一个长字符串 按照某些字符来 分隔,返回值为 分隔后的列表,不修改原来的字符串。
    In [1]: test_str = 'python itcast itcast'
    In [2]: test_str.split('it')
    Out[2]: ['python ', 'cast ', 'cast']
    
    然后 看下面:
    In [1]: test_str = 'python itcast itcast'
    In [2]: test_str.split(' ',1)
    Out[2]: ['python', 'itcast itcast']
    
    参数 1 代表 在满足要求的基础上 “切1刀”
    

7. join

  • 用于将序列中的元素以指定的字符(可以是多个字符)连接生成一个新的字符串.
    In [1]: test_list = ['a','b','c']
    In [2]: '-'.join(test_list)
    Out[2]: 'a-b-c' 
    

8. capitalize

  • 把字符串的 第一个字符 大写,返回大写后的字符串,不修改原来的字符串。
    In [1]: test_str = 'python itcast itcast'
    In [2]: test_str.capitalize()
    Out[2]: 'Python itcast itcast'
    

9. title

  • 字符串 每个单词的 首字母 大写,返回大写后的字符串,不修改原来的字符串。
    In [1]: test_str = 'python itcast itcast'
    In [2]: test_str.title()
    Out[2]: 'Python Itcast Itcast'
    

10. startswith

  • 检查字符串是否是以 某个字符串 开头, 是则返回 True,否则返回 False
    In [1]: test_str = 'python itcast itcast'
    In [2]: test_str.startswith('py')
    Out[2]: True
    
    添加 起始位置 和 结束位置:
    In [3]: test_str.startswith('python',0,2)
    Out[3]: False
    
    参数可以是一个元组,  
    In [4]: test_str.startswith(('hh','th'))
    Out[4]: False
    
    

11. endswith

  • 用法和startswith 一样 。检查字符串是否是以 某个字符串 结尾, 是则返回 True,否则返回 False

12. lower

  • 把字符串里所有的大写字符转换为小写,返回值为修改后的字符串,不修改原来的字符串。
    In [1]: test_str = 'HELLO'
    In [2]: test_str.lower()
    Out[2]: 'hello'
    

13. upper

  • 用法和 lower 一样。把字符串里所有的小写字符转换为大写,返回值为修改后的字符串,不修改原来的字符串。

14. ljust

  • 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。默认填充空格字符。
    In [1]: test_str = 'helo'
    In [2]: test_str.ljust(10,'-')
    Out[2]: 'helo------'
    

15. rjust

  • 和 ljust 用法一样。
  • 返回一个原字符串右对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。默认填充空格字符。

16. center

  • 和 ljust 用法一样。
  • 返回一个原字符串居中对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。默认填充空格字符。

17. lstrip

  • 截掉字符串 左端 的空格或指定字符。
    In [1]: test_str = '   hello--'
    In [2]: test_str.lstrip()
    Out[2]: 'hello--'
    
    指定字符:
    In [1]: test_str = '   hello--'
    In [2]: test_str.lstrip('-')
    Out[2]: '   hello--'
    

18. rstrip

  • 和 lstrip 用法一样。截掉字符串 右端 的空格或指定字符。

19. strip

  • 和 lstrip 用法一样。截掉字符串 前后两端 的空格或指定字符。

20. partition

  • 根据指定的分隔符将字符串进行分割。
  • 如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
    In [1]: test_str = 'python itcast hello itcast world'
    In [2]: test_str.partition('itcast')
    Out[2]: ('python ', 'itcast', ' hello itcast world')
    

21. rpartition

  • 和partition类似,只不过是从右边开始匹配的。
    In [1]: test_str = 'python itcast hello itcast world'
    In [2]: test_str.rpartition('itcast')
    Out[2]: ('python itcast hello ', 'itcast', ' world')
    

22. splitlines

  • 按照行分隔,返回一个包含各行作为元素的列表。
    In [1]: test_str = '''hello
    ...: world'''
    
    In [2]: test_str
    Out[2]: 'hello\nworld'
    
    In [3]: test_str.splitlines()
    Out[3]: ['hello', 'world']
    
    splitlines 有一个参数 keepends 默认为False,表示不包含换行符。
    

23. isalpha

  • 检测字符串是否只由字母组成。这里所说的字母包含中文字符。
    In [1]: test_str = 'abc'
    In [2]: test_str.isalpha()
    Out[2]: True
    

24. isdigit

  • 检测字符串是否只由数字组成。
    In [1]: test_str = '123'
    In [2]: test_str.isdigit()
    Out[2]: True
    

25. isalnum

  • 检测字符串是否只由空格组成。
    In [1]: test_str = '   '
    In [2]: test_str.isspace()
    Out[2]: True
    

26. islower

  • 判断字符串是否是全小写字母组成

27. isupper

  • 判断字符串是否全大写

28. istilte

  • 判断字符串是否是满足所有单词首字母大写格式

29. swapcase

  • 字符串中字母大写转小写,小写转大写

30. zfill

  • 使用0在原始字符串左侧补充到长度为指定值,小数点占1位
    In [40]: a = "3.14"
    In [42]: a.zfill(6)
    Out[42]: '003.14'
    

最后:字符串是不可变类型,所以以上操作都不会修改原字符串。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341