鱼C论坛

 找回密码
 立即注册
查看: 10992|回复: 274

[技术交流] Python 字符串方法总结

  [复制链接]
发表于 2020-3-8 13:52:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一个账号 于 2020-7-10 18:49 编辑

Python 字符串方法总结


0. 建议使用浏览器的查找功能(Ctrl+F)查找想要的方法。

1. str.lower() 将所有字母转换成小写:

  1. >>> "HelLo WoRld!@#".lower()
  2. 'hello world!@#'
复制代码


2. str.upper() 将所有字母转换成大写:

  1. >>> "dd*&..87KDJIkjd".upper()
  2. 'DD*&..87KDJIKJD'
复制代码


3. str.islower() 判断字母是否全部小写:

  1. >>> "ddksdkknb**.234".islower()
  2. True
  3. >>> "kdjwllL".islower()
  4. False
复制代码


4. str.isupper() 判断字母是否全部大写:

  1. >>> "KDJII**76".isupper()
  2. True
  3. >>> "ddID!!".isupper()
  4. False
复制代码


5. str.capitalize() 将字符串的第一个字母变成大写,其他字母变小写:

  1. >>> "dSekjg skDDg Wekj".capitalize()
  2. 'Dsekjg skddg wekj'
复制代码


6. str.center(width, fillchar=" ") 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格:

  1. >>> "dkjwi".center(20)
  2. '       dkjwi        '
  3. >>> "dkjwi".center(50)
  4. '                      dkjwi                       '
  5. >>> "dkjwi".center(50, "1")
  6. '1111111111111111111111dkjwi11111111111111111111111'
复制代码


7. str.encode(encoding='UTF-8',errors='strict') 方法将字符串编码成指定格式。errors 参数可以指定不同的错误处理方案:

  1. >>> "test".encode("utf-8")
  2. b'test'
复制代码


8. str.casefold() 将大写转换为小写,不完全和 str.lower() 相同:

  1. >>> "DkwjKJeED".casefold()
  2. 'dkwjkjeed'
  3. >>> "Groß - α".casefold()   # 德语大写 a
  4. 'gross - α'
  5. >>> "Groß - α".lower()
  6. 'groß - α'
复制代码


9. str.count(sub[, start[, end]]) 用于统计字符串里某个字符出现的次数。sub 是要搜索的字符串,start 是开始搜索位置,end 是搜索结束位置(不搜过 end):

  1. >>> "3kjdij2kj3233dkjY%".count("3")
  2. 4
  3. >>> "3kjdij2kj3233dkjY%".count("3", 3)
  4. 3
  5. >>> "3kjdij2kj3233dkjY%".count("3", 8, 9)
  6. 0
  7. >>> "3kjdij2kj3233dkjY%".count("3", 8, 10)
  8. 1
复制代码


10. str.find(sub[, start[, end]])) 用于检测字符串中是否包含子字符串 str ,如果指定 start 和 end 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回 -1:

  1. >>> "kejlgiw2k24jll".find("l")
  2. 3
  3. >>> "kejlgiw2k24jll".find("l", 3)
  4. 3
  5. >>> "kejlgiw2k24jll".find("l", 4)
  6. 12
  7. >>> "kejlgiw2k24jll".find("l", 4, 10)
  8. -1
复制代码


11. str.expandtabs(tabsize=8) 用于把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8:

  1. >>> "\tabc".expandtabs()
  2. '        abc'
  3. >>> "\tabc".expandtabs(2)
  4. '  abc'
复制代码


12. str.endswith(suffix[, start[, end]]) 用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。可选参数 "start" 与 "end" 为检索字符串的开始与结束位置(不包括结束位置):

  1. >>> "c:/test/abc.txt".endswith(".txt")
  2. True
  3. >>> "c:/test/abc.txt".endswith("test", 0, 6)
  4. False
  5. >>> "c:/test/abc.txt".endswith("test", 0, 7)
  6. True
复制代码


13. format_map(mapping) 类似 str.format(*args, **kwargs) ,不同的是 mapping 是一个字典对象:

  1. >>> dict1 = {"name" : "鱼C论坛", "boss" : "小甲鱼"}
  2. >>> "{name}由{boss}创建".format_map(dict1)
  3. '鱼C论坛由小甲鱼创建'
复制代码


14. isdigit()、isdecimal() 和 isnumeric() 都是用于判断一个字符串是否全部为数字,具体区别请参阅 isdigit()、isdecimal() 和 isnumeric() 的区别

15. str.index(sub[, start[, end]]) 该方法与 str.find() 方法类似,只不过如果str不在 string 中会抛出异常。

16. str.isalpha() 如果字符串全部都是字母(包括汉字),返回 True,否则返回 False:

  1. >>> "测试abc".isalpha()
  2. True
  3. >>> "space ".isalpha()   # 有空格
  4. False
  5. >>> "abc123".isalpha()
  6. False
  7. >>> "abc!".isalpha()
  8. False
复制代码


17. str.isalnum() 如果字符串全部都是字母或者数字(包括汉字),返回 True,否则返回 False:

  1. >>> "你好 hello".isalnum()  # 有空格
  2. False
  3. >>> "测试".isalnum()
  4. True
  5. >>> "hello".isalnum()
  6. True
  7. >>> "hello123".isalnum()
  8. True
  9. >>> "hello123!".isalnum()
  10. False
复制代码


18. str.isidentifier() 如果字符串是有效标识符,则 isidentifier() 方法返回 True,否则返回 False:

  1. >>> "A1".isidentifier()
  2. True
  3. >>> "0a".isidentifier()
  4. False
  5. >>> "_d".isidentifier()
  6. True
  7. >>> "a-".isidentifier()
  8. False
  9. >>> "a a".isidentifier()
  10. False
复制代码


19. str.isascii() 如果字符串为空或字符串中的所有字符都是 ASCII,返回 True,否则返回 False:

  1. >>> "测试".isascii()
  2. False
  3. >>> " ".isascii()
  4. True
  5. >>> " dd".isascii()
  6. True
  7. >>> "ab".isascii()   # 全角字符
  8. False
复制代码


20. str.isspace() 如果字符串仅为空格组成,返回 True,否则返回 False:

  1. >>> "".isspace()
  2. False
  3. >>> "   ".isspace()
  4. True
  5. >>> "   1".isspace()
  6. False
复制代码


21. str.istitle() 方法用于检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写:

  1. >>> "Hello World".istitle()
  2. True
  3. >>> "Hello world".istitle()
  4. False
  5. >>> "".istitle()
  6. False
  7. >>> "123".istitle()
  8. False
  9. >>> "123a".istitle()
  10. False
  11. >>> "123A".istitle()
  12. True
复制代码


22. str.rfind(sub[, start[, end]]) 与 str.find() 类似,不同的是该方法是从右到左查找:

  1. >>> "abcdelkjdllsj".rfind("l")
  2. 10
  3. >>> "abcdelkjdllsj".rfind("l", 0, 3)
  4. -1
  5. >>> "abcdelkjdllsj".rfind("l", 0, 6)
  6. 5
复制代码


23. str.rindex(sub[, start[, end]]) 与 str.index() 类似,不同的是是从右到左查找。

24. str.strip(chars=None) 方法用于移除字符串头尾指定的字符(默认为空格或换行符,该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。):

  1. >>> "  ab ck  ".strip()
  2. 'ab ck'
  3. >>> "da dd s  ".strip("d")
  4. 'a dd s  '
复制代码


25. str.rstrip(chars=None) 与 str.strip() 类似,不同的是该方法是去掉字符串末尾的指定字符(默认为空格或换行符)。

26. str.lstrip(chars=None) 与 str.strip() 类似,不同的是该方法是去掉字符串开头的指定字符(默认为空格或换行符)。

27. str.isprintable() 用于判断字符串中的所有字符都是可打印的,如果是,返回 True,否则返回 False:

  1. >>> "".isprintable()
  2. True
  3. >>> "abc123 d  ".isprintable()
  4. True
  5. >>> "\na".isprintable()
  6. False
复制代码


28. str.join(iterable) 方法用于将序列中的元素以指定的字符连接生成一个新的字符串:

  1. >>> "".join([str(i) for i in range(10)])
  2. '0123456789'
  3. >>> "-".join([i for i in "Hello World!"])
  4. 'H-e-l-l-o- -W-o-r-l-d-!'
  5. >>> "".join([1, 2, 3])
  6. Traceback (most recent call last):
  7.   File "<pyshell#9>", line 1, in <module>
  8.     "".join([1, 2, 3])
  9. TypeError: sequence item 0: expected str instance, int found
复制代码


29. str.ljust(width, fillchar=" ") 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。

如果指定的长度小于原字符串的长度则返回原字符串:

  1. >>> "    test".ljust(20)
  2. '    test            '
  3. >>> " test123 ".ljust(2)
  4. ' test123 '
  5. >>> " test123 ".ljust(30, "#")
  6. ' test123 #####################'
复制代码


30. str.rjust(width, fillchar=" ") 方法与 str.ljust() 方法类似,不同的是该方法是右对齐,向左边填充。

31. str.replace(old, new, count=-1) 方法用于将 old 替换为 new,替换 count 次:

  1. >>> "dd2 dkj2 d ".replace("d", "#")
  2. '##2 #kj2 # '
  3. >>> "dd2 dkj2 d ".replace("d", "#", 1)
  4. '#d2 dkj2 d '
复制代码


32. str.partition(sep) 方法用于对字符串进行分割,返回一个3元的元组,

第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串:

  1. >>> "abc".partition("|")
  2. ('abc', '', '')
  3. >>> "fishc.com.cn".partition(".")
  4. ('fishc', '.', 'com.cn')
  5. >>> "a.b.c.d.e.f".partition(".")
  6. ('a', '.', 'b.c.d.e.f')
复制代码


33. str.rpartition(sep) 方法与 str.partition() 类似,不同的是该方法是从右边开始分隔:

  1. >>> "a.b.c.d.e.f".rpartition(".")
  2. ('a.b.c.d.e', '.', 'f')
  3. >>> "a.b.c.d.e.f".partition(".")
  4. ('a', '.', 'b.c.d.e.f')
复制代码


34. str.zfill(width) 方法返回指定长度的字符串,原字符串右对齐,前面填充 width 个 0:

  1. >>> "I love FishC.com!".zfill(20)
  2. '000I love FishC.com!'
  3. >>> "I love FishC.com!".zfill(1)
  4. 'I love FishC.com!'
复制代码


35. str.translate(table) 方法根据 str.maketrans() 方法给出的字符映射转换表转换字符串中的字符。
        
36. str.maketrans(intab,outtab[,delchars])  方方法用于给 translate() 方法创建字符映射转换表。

可以只接受一个参数,此时这个参数是个字典类型。对于接受两个参数的最简单的调用方式,

第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串,表示转换的目标。

两个字符串的长度必须相同,为一一对应的关系。在Python3中可以有第三个参数,

表示要删除的字符,也是字符串。一般 maketrans() 方法需要配合 translate() 方法一起使用:

  1. >>> intab = "aeiou"
  2. >>> outtab = "12345"
  3. >>> deltab = "thw"
  4. >>> trantab1 = str.maketrans(intab, outtab)
  5. >>> trantab2 = str.maketrans(intab, outtab, deltab)
  6. >>> test = "this is string example."
  7. >>> print(test.translate(trantab1))
  8. th3s 3s str3ng 2x1mpl2.
  9. >>> print(test.translate(trantab2))
  10. 3s 3s sr3ng 2x1mpl2.
复制代码


37. str.swapcase() 方法用于对字符串的大小写字母进行转换:

  1. >>> "dWdjskjJKsle&&32q**d@Q".swapcase()
  2. 'DwDJSKJjkSLE&&32Q**D@q'
复制代码


38. str.split(sep=None, maxsplit=-1) 通过指定分隔符 sep 对字符串进行切片,如果参数 maxsplit有指定值,则分隔 maxsplit+1 个子字符串:

  1. >>> "hello world".split()
  2. ['hello', 'world']
  3. >>> "hello world".split(" ")
  4. ['hello', 'world']
  5. >>> "hello         world".split()
  6. ['hello', 'world']
  7. >>> "hello         world".split(" ")
  8. ['hello', '', '', '', '', '', '', '', '', 'world']
  9. >>> "hello world".split("o")
  10. ['hell', ' w', 'rld']
  11. >>> "hello world".split("o", 1)
  12. ['hell', ' world']
  13. >>> "hello world".split("o", 0)
  14. ['hello world']
复制代码


39. str.splitlines(keepends=False) 请见 Python str splitlines() 方法

40. str.format(*args, **kwargs) -> str 请见 实用干货:字符串格式化

41. str.rsplit(sep=None, maxsplit=-1) 与 str.split() 类似,不同的是该方法是从字符串最后面开始分割。

42. str.title() 将所有单词以大写开头,将其他字母变成小写:

  1. >>> "heLLo wOrLD".title()
  2. 'Hello World'
  3. >>> "123 hello ##6 WorLd".title()
  4. '123 Hello ##6 World'
复制代码


43. str.startswith(prefix[, start[, end]]) -> bool 与 str.endswith() 类似,不同的是该方法是用于判断字符串是否以指定前缀结尾:

  1. >>> "Hello World!".startswith("Hello")
  2. True
  3. >>> "Hello World!".startswith("hello")
  4. False
  5. >>> "Hello World!".startswith("World", 6, 11)
  6. True
复制代码

评分

参与人数 7荣誉 +15 鱼币 +20 贡献 +3 收起 理由
hanjiang6607 + 1 + 1 感谢楼主无私奉献!
奔跑的陀螺 + 5 感谢楼主无私奉献!
可以不写名字吗 + 5 + 5 + 3
EDX + 1 + 1 鱼C有你更精彩^_^
whx2008 + 1 + 1 鱼C有你更精彩^_^
wcshds + 5 + 5 鱼C有你更精彩^_^
yexing + 2 + 2 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-8 15:01:29 | 显示全部楼层
good
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-8 15:27:18 | 显示全部楼层
学习了!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 15:51:46 | 显示全部楼层
总结一些常用的方法, good
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 23:12:34 | 显示全部楼层
good
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-18 10:45:53 | 显示全部楼层
学习啦~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 14:38:16 | 显示全部楼层
GOOD
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-18 14:43:05 | 显示全部楼层
求学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 17:09:05 | 显示全部楼层
加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-18 21:10:30 | 显示全部楼层
正在学习字符串背后的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-18 23:32:40 From FishC Mobile | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2020-3-19 00:10:55 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2020-3-19 10:45:40 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 11:47:32 | 显示全部楼层
支持楼主!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 11:48:55 | 显示全部楼层
  1. 23. str.rindex(sub[, start[, end]]) 与 str.rindex() 类似,不同的是是从右到左查找。
复制代码
应该是
  1. 23. str.rindex(sub[, start[, end]]) 与 str.index() 类似,不同的是是从右到左查找。
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
一个账号 + 2 + 2 感谢提醒

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-19 11:50:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 15:52:41 | 显示全部楼层
学习!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 16:04:04 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-19 18:22:43 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-21 10:38:02 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 12:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表